SR3 Save Editor C

Discussion in 'Tool Releases' started by Corrodias, Jun 21, 2012.

  1. Works very nicely with SR3!

    And on a side note, is there a version of this for Sr4 or SR:GOOH?
     
  2. Thanks about this awesome piece of software! Helped me a bit.

    Now I ran into some issues with it at SR3 Steam Linux version. I'm playing under Linux Mint 19.2 64-bit now. Java version is 1.7.0_80-b15 64-bit. At first noticed a bug on save game location autodetection:
    Code (Text):
    Oct 28, 2019 12:04:34 AM java.util.prefs.FileSystemPreferences$1 run
    INFO: Created user preferences directory.
    java.lang.NoSuchMethodException: java.util.prefs.FileSystemPreferences.WindowsRegOpenKey(int, [B, int)
        at java.base/java.lang.Class.getDeclaredMethod(Class.java:2475)
        at com.stackoverflow.question.number_62289.WinRegistry.<clinit>(WinRegistry.java:36)
        at corrodias.sr3.save.editor.Main.getSavePath(Main.java:46)
        at corrodias.sr3.save.editor.MainFrame.<init>(MainFrame.java:78)
        at corrodias.sr3.save.editor.Main.main(Main.java:29)
    Oct 28, 2019 12:04:34 AM corrodias.sr3.save.editor.Main getSavePath
    INFO: java.lang.NullPointerException
    That is fine. SR3 Steam Linux saves are located elsewhere - under "/home/<user>/.steam/steam/userdata/57567017/55230/remote". Would be nice to fix that later, but nothing critical.

    Another bug popped up in console on opening saves after mission "We're Going to Need Guns":
    Code (Text):
    Oct 28, 2019 12:06:53 AM corrodias.sr3.save.editor.MainFrame$LoadButtonListener actionPerformed
    SEVERE: null
    java.lang.ClassCastException: class java.lang.Byte cannot be cast to class java.lang.Integer (java.lang.Byte and java.lang.Integer are in module java.base of loader 'bootstrap')
        at java.base/java.lang.Integer.compareTo(Integer.java:59)
        at java.desktop/javax.swing.SpinnerNumberModel.incrValue(SpinnerNumberModel.java:362)
        at java.desktop/javax.swing.SpinnerNumberModel.getPreviousValue(SpinnerNumberModel.java:401)
        at java.desktop/javax.swing.plaf.basic.BasicSpinnerUI.updateEnabledState(BasicSpinnerUI.java:514)
        at java.desktop/javax.swing.plaf.basic.BasicSpinnerUI.updateEnabledState(BasicSpinnerUI.java:494)
        at java.desktop/javax.swing.plaf.basic.BasicSpinnerUI$Handler.stateChanged(BasicSpinnerUI.java:1084)
        at java.desktop/javax.swing.JSpinner.fireStateChanged(JSpinner.java:461)
        at java.desktop/javax.swing.JSpinner$ModelListener.stateChanged(JSpinner.java:388)
        at java.desktop/javax.swing.AbstractSpinnerModel.fireStateChanged(AbstractSpinnerModel.java:120)
        at java.desktop/javax.swing.SpinnerNumberModel.setValue(SpinnerNumberModel.java:460)
        at java.desktop/javax.swing.JSpinner.setValue(JSpinner.java:355)
        at corrodias.sr3.save.editor.MainFrame.readPlayerPanelData(MainFrame.java:831)
        at corrodias.sr3.save.editor.MainFrame.access$1700(MainFrame.java:25)
        at corrodias.sr3.save.editor.MainFrame$LoadButtonListener.actionPerformed(MainFrame.java:1028)
        at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
        at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308)
        at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
        at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
        at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)
        at java.desktop/java.awt.Component.processMouseEvent(Component.java:6632)
        at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342)
        at java.desktop/java.awt.Component.processEvent(Component.java:6397)
        at java.desktop/java.awt.Container.processEvent(Container.java:2263)
        at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5008)
        at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
        at java.desktop/java.awt.Component.dispatchEvent(Component.java:4840)
        at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918)
        at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4547)
        at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488)
        at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
        at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2772)
        at java.desktop/java.awt.Component.dispatchEvent(Component.java:4840)
        at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
        at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
        at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
        at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
        at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
        at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
        at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
        at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
    Saves themselves opens and are editable, saveable and loads in game without issues. Dunno, what it is. Maybe related to 64-bit Java, maybe not.

    Also increased money amount above $12,000,000 become negative. $29,000,000 loaded as -$12,000,000.
     
  3. How did you opened the sr3d_pc files?
    And is it possible to edit the sr3savedir.sr3d_pc file for changing the order of my saves in the game?
     
  4. great job, would love to see a way you can edit the stunt jump and the brain storming so you don't have to do them.
     
  5. Hi, love the program! Just wanted to know if it would be usable with the remastered version of the game?
     
    PsychoCrow likes this.
  6. +1 ^ to question above ^
     
  7. Last edited: Jun 15, 2020
  8. Admixon

    Admixon Cybercat Staff Member

  9. This does work on the remastered version, but it seems it cannot keep the garage when you edit a file unless that was always a thing.
     
  10. There is a superb editor for the remaster with working garage editor
     
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice