[TOOL] (Alpha 6) Save Editor v0.9.6.7 - Updated 8/22

Started by Neurotoxin, August 11, 2014, 09:54:08 PM

Previous topic - Next topic

Do you use the update checker?

Yes
44 (60.3%)
No
15 (20.5%)
I tick it to check then untick it - I prefer manual update checks
14 (19.2%)

Total Members Voted: 73

Neurotoxin

#45
Quote from: MonkeyWithAWrench on August 20, 2014, 12:57:33 AM
As I mentioned I use Mercurial myself, and I do it through TortoiseHg. It's got a pretty d*** good gui actually. I've had some some experience with TortoiseGit, but it's been a fair while since then. Still, much of it is probably the same.

Some good news though. After using some google-fu, it looks like there an extension for TortoiseHg to allow changing repos between mercurial and git on the fly. It'll apparently even connect and work with github. So I might look into using that. It'd be nice to get the best of both worlds.

that's awesome, just remember to connect to Github you'll need an API access key and an ssh key, which is pretty easy to link to your Github account, click settings (top right gear lookin thing) and you'll see this on the left side:

macrosblackd

The API key portion is only for applications that interact with github directly. For just cloning, you only need the SSH key, and you can even skip that by just cloning via https.  I very highly recommend (it is actually pretty much required if you want to create pull requests) forking the repository (from Neuro) first, then cloning your fork. Once you have it cloned locally, you can add a new remote that points to the original repo and do, if using git, 'git merge --ff-only <remote> <branch>'. This will do a couple of things, first it will stop if you've done any changes to branch HEAD is point at (you can bypass that with the --rebase option), and second, it will NOT create a merge commit, so you don't have to worry about branching logs.  I've found this to be a very ideal workflow when working on a github project.

Neurotoxin

#47
Quote from: macrosblackd on August 20, 2014, 01:33:21 AM
The API key portion is only for applications that interact with github directly. For just cloning, you only need the SSH key, and you can even skip that by just cloning via https.  I very highly recommend (it is actually pretty much required if you want to create pull requests) forking the repository (from Neuro) first, then cloning your fork. Once you have it cloned locally, you can add a new remote that points to the original repo and do, if using git, 'git merge --ff-only <remote> <branch>'. This will do a couple of things, first it will stop if you've done any changes to branch HEAD is point at (you can bypass that with the --rebase option), and second, it will NOT create a merge commit, so you don't have to worry about branching logs.  I've found this to be a very ideal workflow when working on a github project.

Let me rephrase that workflow for people with a git gui. Push some buttons, then push another button, make your changes, push a button or two, go to github and submit a pull request(Depending on the GUI you can maybe do this from there too). Haha, but really, you make it sound so hard, not that verbosity is a bad thing, but it can be a little daunting.


To simplify while remaining verbose. Fork my repo (preferably the InDev branch, that's the staging branch for changes), clone your fork to your machine, make ALL THE CHANGES!!!, if my fork has changed, rebase yours off mine, push and submit a pull request.

MoparGamer

#48
I might have found a trait editor bug or maybe just a mod conflict (Playing a modified game); after adding traits to a colonist, trying to add traits to a different colonist gives me the following error
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
   at System.ThrowHelper.ThrowKeyNotFoundException()
   at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
   at RimWorldSaveEditor.Form1.button2_Click(Object sender, EventArgs e)
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.5472 (Win7SP1GDR.050727-5400)
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v2.0.50727/mscorlib.dll
----------------------------------------
RimWorldSaveEditor
    Assembly Version: 0.9.6.5
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/Users/Mike/Desktop/RimworldSaveEditor/RimWorldSaveEditor.exe
----------------------------------------
System.Windows.Forms
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.5468 (Win7SP1GDR.050727-5400)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.5467 (Win7SP1GDR.050727-5400)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.5467 (Win7SP1GDR.050727-5400)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Configuration
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.5476 (Win7SP1GDR.050727-5400)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.5476 (Win7SP1GDR.050727-5400)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Core
    Assembly Version: 3.5.0.0
    Win32 Version: 3.5.30729.5420 built by: Win7SP1
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Core/3.5.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.

The error isn't fatal (doesn't crash the program) but it does repeat itself for all colonist after the first instance of it happening. re-opening the program allows me to edit traits again.

Also, upon loading a save file the entire backstory section is blank. It's easily fixed by clicking a colonist to load up their info.

Thanks for the editor :)

macrosblackd

Thanks for the stack trace. When I get some free time I'll take a look if Neuro doesn't get to it first.

In the future though, I would highly recommend not trying to perform additional actions after an exception. Even if the application stays open, there is no way to determine in the state of the application is safe and it could cause corruption to you're save file.

Archinemal

For some reason if you try to edit a save with Rimworld Zombie Apocalypse enabled the tool does not load the colonists. The save loads up with  no errors but the colonists don't show up on the screen. I checked and the tool works on other saves that did not have the zombie mod Enabled and it worked so I concluded that the mod was causing the problem. I would be glad for help if its on my end and would be thankful for a patch if its on your end.

khromosone

I am having the same drama and also have Zombies enabled.

Neurotoxin

#52
The Zombie mod must change the kindDef for Colonists, if anyone would kindly post a save using it I'll look into it.

@Mopar do any of the mods you're using add any traits? The way traits are saved in the file looks something like this


<li Class="Trait">
    <def>NaturalMood</def>
    <degree>1</degree>
</li>

And multiple traits with different player readable names use the same defName with a different degree so I have to hard map those in to display the readable name in the save editor, if a mod adds traits, I don't have a map of their traits. I could fix it by null checking the key and if I don't have a key, display the defName instead, it's ugly but it's the only way to do it without Mapping out every single mod that adds traits. That all said, I know exactly where the problem is and I'll roll out a fix for the prerelease tonight.

If you could also send me a save to test with it would greatly help for solving mod compatibility.

MoparGamer

Here's the save I was editing before and the mods I'm using:
Apothecarius (Adds a medicine production chain)
Clutter (Various aesthetic objects)
EdBInterface (Edits the in-game HUD)
ProjectArmory (More guns)
Tech Tree Minami (A lot of things)

I looked through the save myself and didn't see any odd traits, but I do have more than 2 traits per colonists and there are some additional jobs (In the overview's work tab)

https://www.dropbox.com/s/fg9tev6q7dd7osu/TheMountainTesting.rwm

Neurotoxin

#54
Quote from: MoparGamer on August 21, 2014, 12:30:22 PM
Here's the save I was editing before and the mods I'm using:
Apothecarius (Adds a medicine production chain
Clutter
EdBInterface
ProjectArmory
Tech Tree Minami

I looked through the save myself and didn't see any odd traits, but I do have more than 2 traits per colonists and there are some additional jobs (In the overview's work tab)

https://www.dropbox.com/s/fg9tev6q7dd7osu/TheMountainTesting.rwm

Alrighty, I'll take a look and get back to you.

EDIT: It might be a little while on that one, it's trying really hard to hide from me but I WILL find it and when I do, it's little buggy guts are going to get everywhere. It's not, in your case, a mod incompatibility rather, something I messed up. And that's why the trait editor is a pre-release.

BTW updates have slowed for 2 reasons, one being I'm waiting for a bit more feedback on the trait editor as I know there's gotta be another bug or two hiding in there and 2 I'm doing a large refactor of the code. To make bug hunting and feature addition easier with the help of Macros

MoparGamer

I may have another odd bug for you. I recently got a new colonist from an event, I went to edit him in the editor and he didn't appear in the editor, Haven't captured anyone yet so I don't know if it's specific to the event.

I'm going to switch back to vanilla Rimworld and test see if either of my issues are still present.

Neurotoxin

Quote from: MoparGamer on August 21, 2014, 02:14:12 PM
I may have another odd bug for you. I recently got a new colonist from an event, I went to edit him in the editor and he didn't appear in the editor, Haven't captured anyone yet so I don't know if it's specific to the event.

I'm going to switch back to vanilla Rimworld and test see if either of my issues are still present.

The trait editor issue will more than likely still be present. I'm certain it's something on my end though I haven't pinpointed it. It seems the program is losing the mapping of the readable name to the trait's degree. It works fine once, but not on subsequent use. As for the additional colonist, if you want to upload a save that contains him/her and give me their name I'll poke around and see why that may be. It could very well be that something else is erroring but not throwing an exception before it gets to reading that colonist, or something is off about them in the save file.

MoparGamer

Both issues were still present with the vanilla game, here's the save file https://www.dropbox.com/s/c4jhd13tby6zpwd/Test.rwm

The fourth colonist's name is Jaquese

Neurotoxin

Quote from: MoparGamer on August 21, 2014, 02:21:38 PM
Both issues were still present with the vanilla game, here's the save file https://www.dropbox.com/s/c4jhd13tby6zpwd/Test.rwm

The fourth colonist's name is Jaquese

And there's the new problem

<kindDef>Villager</kindDef>


Has Jaquese actually arrived at the colony yet or are they still on their way there? I see the event is still active, It may need to finish before they're actually consider a colonist.

MoparGamer

At that point in time he hadn't arrived. I just let him live through a night, sleep, and do some other random things, he's still not loading in the editor and I checked the save file as well, He's still listed as a villager.

The new file: https://www.dropbox.com/s/4p6ioxs7d6ogk7n/Test%20%282%29.rwm