SR3 Save Editor C

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:
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:
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.
 
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?
 
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.
 
Ironically speaking you can get around 160 vehicles total if you use certain tricks/mods to get more than one reward vehicle etc. Could you actually update this to support 160 garage slots for people who did this? Or at least tell me how to edit it myself to allow 160 so it does not delete my vehicles.
 
Back
Top