Skip to content

Commit 347ad83

Browse files
committed
optimizations and settings (with skewb)
1 parent e070a77 commit 347ad83

File tree

3 files changed

+89
-75
lines changed

3 files changed

+89
-75
lines changed

SADXOpenStates/Program.cs

Lines changed: 63 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using SharpDX.XInput;
44
using Memory;
55
using Newtonsoft.Json;
6+
using System.Linq;
67

78
// Used for later
89
using System.Configuration;
@@ -32,16 +33,7 @@ static void Main(string[] args)
3233
string json = System.IO.File.ReadAllText("file.txt");
3334
SaveStateSerializer SavesObject = JsonConvert.DeserializeObject<SaveStateSerializer>(json);
3435

35-
Console.WriteLine(SavesObject.Version);
36-
37-
SaveState[] statesFromFile = SavesObject.SaveStates;
38-
for (int i = 0; i < 10; i++)
39-
{
40-
if(statesFromFile[i] != null)
41-
{
42-
statesFromFile[i] = new SaveState(statesFromFile[i].xPos, statesFromFile[i].yPos, statesFromFile[i].zPos, statesFromFile[i].xRot, statesFromFile[i].yRot, statesFromFile[i].zRot, statesFromFile[i].hSpeed, statesFromFile[i].vSpeed, statesFromFile[i].hover, statesFromFile[i].lives, statesFromFile[i].rings, statesFromFile[i].tFrames, statesFromFile[i].tSeconds, statesFromFile[i].tMins, statesFromFile[i].camX, statesFromFile[i].camY, statesFromFile[i].camZ, statesFromFile[i].camXRot, statesFromFile[i].camYRot, statesFromFile[i].camZRot);
43-
}
44-
}
36+
saveStates = SavesObject.SaveStates;
4537
}
4638

4739
ConnectController();
@@ -104,10 +96,12 @@ public static void ConnectController()
10496

10597
public static void Run()
10698
{
107-
GamepadButtonFlags buttonsPressed;
99+
int buttonsPressed;
108100

109101
bool hasSaved = false, hasLoaded = false, hasSwitched = false;
110-
bool left, right, up, down;
102+
bool DLeft, DRight, DUp, DDown, LB;
103+
104+
int invertCycle = UserSettings.Default.invertCycle ? -1 : 1;
111105

112106
while (true)
113107
{
@@ -126,72 +120,79 @@ public static void Run()
126120
}
127121

128122

129-
buttonsPressed = CONTROLLER.GetState().Gamepad.Buttons;
123+
buttonsPressed = (int)CONTROLLER.GetState().Gamepad.Buttons;
130124

131-
left = buttonsPressed.HasFlag(GamepadButtonFlags.DPadLeft);
132-
right = buttonsPressed.HasFlag(GamepadButtonFlags.DPadRight);
133-
up = buttonsPressed.HasFlag(GamepadButtonFlags.DPadUp);
134-
down = buttonsPressed.HasFlag(GamepadButtonFlags.DPadDown);
125+
DUp = (buttonsPressed & 1) != 0 ? true : false;
126+
DDown = (buttonsPressed & 2) != 0 ? true : false;
127+
DLeft = (buttonsPressed & 4) != 0 ? true : false;
128+
DRight = (buttonsPressed & 8) != 0 ? true : false;
129+
LB = (buttonsPressed & 256) != 0 ? true : false;
135130

136-
if (left && !hasSaved)
131+
if(LB || !UserSettings.Default.extraInput)
137132
{
138-
saveStates[curSaveState] = new SaveState(m);
139-
133+
if (DLeft && !hasSaved)
134+
{
135+
saveStates[curSaveState] = new SaveState(m);
140136

141-
Console.WriteLine("Saved to {0}", curSaveState);
142-
SaveStateSerializer SaveObjectToSerialize = new SaveStateSerializer(saveStates);
143-
string json = JsonConvert.SerializeObject(SaveObjectToSerialize);
144-
145-
System.IO.File.WriteAllText("file.txt", json);
146137

147-
hasSaved = true;
148-
}
149-
else if (!left && hasSaved)
150-
{
151-
hasSaved = false;
152-
}
138+
Console.WriteLine("Saved to {0}", curSaveState);
139+
SaveStateSerializer SaveObjectToSerialize = new SaveStateSerializer(saveStates);
140+
string json = JsonConvert.SerializeObject(SaveObjectToSerialize);
153141

142+
System.IO.File.WriteAllText("file.txt", json);
154143

155-
if (right && !hasLoaded && saveStates[curSaveState] != null)
156-
{
157-
LoadState(saveStates[curSaveState]);
144+
hasSaved = true;
145+
}
146+
else if (!DLeft && hasSaved)
147+
{
148+
hasSaved = false;
149+
}
158150

159-
Console.WriteLine("Loaded {0}", curSaveState);
160151

161-
hasLoaded = true;
162-
}
163-
else if (right && saveStates[curSaveState] == null && !hasLoaded)
164-
{
165-
hasLoaded = true;
166-
Console.WriteLine("Cannot find save state {0}", curSaveState);
167-
}
168-
else if (!right && hasLoaded)
169-
{
170-
hasLoaded = false;
171-
}
172-
152+
if (DRight && !hasLoaded)
153+
{
154+
if (saveStates[curSaveState] != null)
155+
{
156+
LoadState(saveStates[curSaveState]);
173157

158+
Console.WriteLine("Loaded {0}", curSaveState);
159+
}
160+
else
161+
{
162+
Console.WriteLine("Cannot find save state {0}", curSaveState);
163+
}
164+
hasLoaded = true;
165+
}
166+
else if (!DRight && hasLoaded)
167+
{
168+
hasLoaded = false;
169+
}
174170

175-
if ((up || down) && !hasSwitched)
176-
{
177-
//Console.WriteLine(Convert.ToInt32(UserSettings.Default.invertCycle));
178-
curSaveState += Convert.ToInt32(up);
179-
curSaveState -= Convert.ToInt32(down);
180171

181-
if (curSaveState == -1) curSaveState = 9;
182-
else if (curSaveState == 10) curSaveState = 0;
183172

184-
Console.WriteLine("Switched to save slot {0}", curSaveState);
173+
if ((DUp || DDown) && !hasSwitched)
174+
{
175+
//Console.WriteLine(Convert.ToInt32(UserSettings.Default.invertCycle));
185176

186-
hasSwitched = true;
187-
}
188-
else if (!(up || down) && hasSwitched)
189-
{
190-
hasSwitched = false;
191-
}
177+
curSaveState += Convert.ToInt32(DUp) * invertCycle;
178+
curSaveState -= Convert.ToInt32(DDown) * invertCycle;
192179

180+
if (curSaveState == -1) curSaveState = 9;
181+
else if (curSaveState == 10) curSaveState = 0;
193182

194-
System.Threading.Thread.Sleep(10);
183+
Console.WriteLine("Switched to save slot {0}", curSaveState);
184+
185+
hasSwitched = true;
186+
}
187+
else if (!(DUp || DDown) && hasSwitched)
188+
{
189+
hasSwitched = false;
190+
}
191+
192+
System.Threading.Thread.Sleep(10);
193+
}
194+
195+
195196
}
196197

197198
checkGame = new Thread(checkForProcess);
@@ -234,8 +235,6 @@ public static void LoadState(SaveState state)
234235
// Write camera info into memory
235236
if (m.ReadByte("base+372CBA8") != 7)
236237
{
237-
m.WriteMemory("base+372CBA8", "byte", "4");
238-
239238
m.WriteMemory("base+0372CBB0,20", "float", state.camX.ToString());
240239
m.WriteMemory("base+0372CBB0,24", "float", state.camY.ToString());
241240
m.WriteMemory("base+0372CBB0,28", "float", state.camZ.ToString());

SADXOpenStates/Properties/Settings.Designer.cs

Lines changed: 21 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

SADXOpenStates/Properties/Settings.settings

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,11 @@
22
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="SADXOpenStates.Properties" GeneratedClassName="Settings">
33
<Profiles />
44
<Settings>
5-
<Setting Name="Pog" Type="System.String" Scope="User">
6-
<Value Profile="(Default)" />
5+
<Setting Name="invertCycle" Type="System.Boolean" Scope="User">
6+
<Value Profile="(Default)">False</Value>
7+
</Setting>
8+
<Setting Name="extraInput" Type="System.Boolean" Scope="User">
9+
<Value Profile="(Default)">False</Value>
710
</Setting>
811
</Settings>
912
</SettingsFile>

0 commit comments

Comments
 (0)