Skip to content

Commit

Permalink
add (virtual) joystick button shortcuts to all screens
Browse files Browse the repository at this point in the history
stop changing credits from bounty event
  • Loading branch information
mhwlng committed Jun 4, 2021
1 parent df852df commit 2b566ec
Show file tree
Hide file tree
Showing 13 changed files with 289 additions and 17 deletions.
59 changes: 58 additions & 1 deletion Elite/App.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,25 @@ public partial class App : Application
private static int _rightButton;
private static int _pushButton;

private static int _navigationButton;
private static int _targetButton;
private static int _commanderButton;
private static int _galnetButton;
private static int _missionsButton;
private static int _chatButton;
private static int _hWInfoButton;
private static int _shipButton;
private static int _materialsButton;
private static int _cargoButton;
private static int _engineerButton;
private static int _shipLockerButton;
private static int _backPackButton;
private static int _pOIButton;
private static int _galaxyButton;
private static int _engineersButton;
private static int _powersButton;
private static int _miningButton;

public static int WindowWidth;
public static int WindowHeight;

Expand Down Expand Up @@ -215,7 +234,7 @@ private static void RunProcess(string fileName)

private static void HandleJoystickButton(JoystickState state, JoystickButton button, int buttonId)
{
if (state.Buttons.Length >= buttonId)
if (buttonId > 0 && state.Buttons.Length >= buttonId)
{
var buttonState = state.Buttons[buttonId - 1];
var oldButtonState = _lastButtonState[buttonId - 1];
Expand Down Expand Up @@ -402,6 +421,25 @@ protected override void OnStartup(StartupEventArgs evtArgs)
_rightButton = Convert.ToInt32(joystickSection["RightButton"]);
_pushButton = Convert.ToInt32(joystickSection["PushButton"]);

_navigationButton = Convert.ToInt32(joystickSection["NavigationButton"]);
_targetButton = Convert.ToInt32(joystickSection["TargetButton"]);
_commanderButton = Convert.ToInt32(joystickSection["CommanderButton"]);
_galnetButton = Convert.ToInt32(joystickSection["GalnetButton"]);
_missionsButton = Convert.ToInt32(joystickSection["MissionsButton"]);
_chatButton = Convert.ToInt32(joystickSection["ChatButton"]);
_hWInfoButton = Convert.ToInt32(joystickSection["HWInfoButton"]);
_shipButton = Convert.ToInt32(joystickSection["ShipButton"]);
_materialsButton = Convert.ToInt32(joystickSection["MaterialsButton"]);
_cargoButton = Convert.ToInt32(joystickSection["CargoButton"]);
_engineerButton = Convert.ToInt32(joystickSection["EngineerButton"]);
_shipLockerButton = Convert.ToInt32(joystickSection["ShipLockerButton"]);
_backPackButton = Convert.ToInt32(joystickSection["BackPackButton"]);
_pOIButton = Convert.ToInt32(joystickSection["POIButton"]);
_galaxyButton = Convert.ToInt32(joystickSection["GalaxyButton"]);
_engineersButton = Convert.ToInt32(joystickSection["EngineersButton"]);
_powersButton = Convert.ToInt32(joystickSection["PowersButton"]);
_miningButton = Convert.ToInt32(joystickSection["MiningButton"]);

if (!string.IsNullOrEmpty(_pid) && !string.IsNullOrEmpty(_vid) && _upButton > 0 && _downButton > 0 && _leftButton > 0 && _rightButton > 0 && _pushButton > 0)
{
splashScreen.Dispatcher.Invoke(() => splashScreen.ProgressText.Text = "Looking for Joystick...");
Expand Down Expand Up @@ -491,6 +529,25 @@ protected override void OnStartup(StartupEventArgs evtArgs)
HandleJoystickButton(state, JoystickButton.Right, _rightButton);
HandleJoystickButton(state, JoystickButton.Push, _pushButton);

HandleJoystickButton(state, JoystickButton.Navigation, _navigationButton);
HandleJoystickButton(state, JoystickButton.Target, _targetButton);
HandleJoystickButton(state, JoystickButton.Commander, _commanderButton);
HandleJoystickButton(state, JoystickButton.Galnet, _galnetButton);
HandleJoystickButton(state, JoystickButton.Missions, _missionsButton);
HandleJoystickButton(state, JoystickButton.Chat, _chatButton);
HandleJoystickButton(state, JoystickButton.HWInfo, _hWInfoButton);
HandleJoystickButton(state, JoystickButton.Ship, _shipButton);
HandleJoystickButton(state, JoystickButton.Materials, _materialsButton);
HandleJoystickButton(state, JoystickButton.Cargo, _cargoButton);
HandleJoystickButton(state, JoystickButton.Engineer, _engineerButton);
HandleJoystickButton(state, JoystickButton.ShipLocker, _shipLockerButton);
HandleJoystickButton(state, JoystickButton.BackPack, _backPackButton);
HandleJoystickButton(state, JoystickButton.POI, _pOIButton);
HandleJoystickButton(state, JoystickButton.Galaxy, _galaxyButton);
HandleJoystickButton(state, JoystickButton.Engineers, _engineersButton);
HandleJoystickButton(state, JoystickButton.Powers, _powersButton);
HandleJoystickButton(state, JoystickButton.Mining, _miningButton);

/*
TODO
var pov = state.PointOfViewControllers;
Expand Down
17 changes: 10 additions & 7 deletions Elite/Data.cs
Original file line number Diff line number Diff line change
Expand Up @@ -897,12 +897,6 @@ public static void HandleEliteEvents(object sender, JournalEventArgs e)
CommanderData.Credits -= payBountiesInfo.Amount;
break;

case "RedeemVoucher":
var redeemVoucherInfo = (RedeemVoucherEvent.RedeemVoucherEventArgs)e;

CommanderData.Credits += redeemVoucherInfo.Amount;

break;

case "MarketSell":
//When Written: when selling goods in the market
Expand Down Expand Up @@ -1567,10 +1561,19 @@ public static void HandleEliteEvents(object sender, JournalEventArgs e)

var bountyInfo = (BountyEvent.BountyEventArgs)e;

CommanderData.Credits += bountyInfo.TotalReward;
// don't increase credits , should happen via RedeemVoucher event
//CommanderData.Credits += bountyInfo.TotalReward;

break;

case "RedeemVoucher":
var redeemVoucherInfo = (RedeemVoucherEvent.RedeemVoucherEventArgs)e;

CommanderData.Credits += redeemVoucherInfo.Amount;

break;


case "MultiSellExplorationData":

//When Written: when selling exploration data in Cartographics
Expand Down
3 changes: 3 additions & 0 deletions Elite/Elite.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -418,6 +418,9 @@
<Content Include="Templates\images\engineers\Mel Brandon.jpg">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Include="Templates\images\engineers\Oden Geiger.jpg">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Include="Templates\images\engineers\Petra Olmanova.jpg">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
Expand Down
164 changes: 162 additions & 2 deletions Elite/FipPanel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,25 @@ public enum JoystickButton
Down,
Left,
Right,
Push
Push,
Navigation,
Target,
Commander,
Galnet,
Missions,
Chat,
HWInfo,
Ship,
Materials,
Cargo,
Engineer,
ShipLocker,
BackPack,
POI,
Galaxy,
Engineers,
Powers,
Mining
}

public enum LcdPage
Expand Down Expand Up @@ -630,14 +648,14 @@ private bool SetTab(LcdTab tab)
_lastTab = CurrentTab;
CurrentTab = tab;

_currentTabCursor = LcdTab.None;

_currentLcdYOffset = 0;

File.WriteAllText(_settingsPath, ((int)CurrentTab).ToString());
}

_currentPage = LcdPage.Collapsed;
_currentTabCursor = LcdTab.None;

App.PlayClickSound();

Expand Down Expand Up @@ -676,6 +694,132 @@ public void HandleJoystickButton(JoystickButton joystickButton, bool state, bool
{
switch (joystickButton)
{
case JoystickButton.Navigation:
if (oldState) return;

_currentPage = LcdPage.HomeMenu;

buttons = CalculateButton(LcdTab.Navigation);
break;
case JoystickButton.Target:
if (oldState) return;

_currentPage = LcdPage.HomeMenu;

buttons = CalculateButton(LcdTab.Target);
break;
case JoystickButton.Commander:
if (oldState) return;

_currentPage = LcdPage.InfoMenu;

buttons = CalculateButton(LcdTab.Commander);
break;
case JoystickButton.Galnet:
if (oldState) return;

_currentPage = LcdPage.InfoMenu;

buttons = CalculateButton(LcdTab.Galnet);
break;
case JoystickButton.Missions:
if (oldState) return;

_currentPage = LcdPage.InfoMenu;

buttons = CalculateButton(LcdTab.Missions);
break;
case JoystickButton.Chat:
if (oldState) return;

_currentPage = LcdPage.InfoMenu;

buttons = CalculateButton(LcdTab.Chat);
break;
case JoystickButton.HWInfo:
if (oldState) return;

_currentPage = LcdPage.InfoMenu;

buttons = CalculateButton(LcdTab.HWInfo);
break;
case JoystickButton.Ship:
if (oldState) return;

_currentPage = LcdPage.ShipMenu;

buttons = CalculateButton(LcdTab.Ship);
break;
case JoystickButton.Materials:
if (oldState) return;

_currentPage = LcdPage.ShipMenu;

buttons = CalculateButton(LcdTab.Materials);
break;
case JoystickButton.Cargo:
if (oldState) return;

_currentPage = LcdPage.ShipMenu;

buttons = CalculateButton(LcdTab.Cargo);
break;
case JoystickButton.Engineer:
if (oldState) return;

_currentPage = LcdPage.ShipMenu;

buttons = CalculateButton(LcdTab.Engineer);
break;
case JoystickButton.ShipLocker:
if (oldState) return;

_currentPage = LcdPage.SuitMenu;

buttons = CalculateButton(LcdTab.ShipLocker);
break;
case JoystickButton.BackPack:
if (oldState) return;

_currentPage = LcdPage.SuitMenu;

buttons = CalculateButton(LcdTab.BackPack);
break;
case JoystickButton.POI:
if (oldState) return;

_currentPage = LcdPage.LocationsMenu;

buttons = CalculateButton(LcdTab.POI);
break;
case JoystickButton.Galaxy:
if (oldState) return;

_currentPage = LcdPage.LocationsMenu;

buttons = CalculateButton(LcdTab.Galaxy);
break;
case JoystickButton.Engineers:
if (oldState) return;

_currentPage = LcdPage.LocationsMenu;

buttons = CalculateButton(LcdTab.Engineers);
break;
case JoystickButton.Powers:
if (oldState) return;

_currentPage = LcdPage.LocationsMenu;

buttons = CalculateButton(LcdTab.Powers);
break;
case JoystickButton.Mining:
if (oldState) return;

_currentPage = LcdPage.LocationsMenu;

buttons = CalculateButton(LcdTab.Mining);
break;
case JoystickButton.Up:
if (_currentPage == LcdPage.Collapsed)
{
Expand Down Expand Up @@ -1281,6 +1425,14 @@ private void SoftButtonCallback(IntPtr device, IntPtr buttons, IntPtr context)
{
mustRefresh = SetTab(LcdTab.HWInfo);
}
else
{
mustRefresh = true;
CurrentTab = LcdTab.None;
_lastTab = LcdTab.Init;
_currentTabCursor = LcdTab.None;
_currentPage = LcdPage.Collapsed;
}
break;
case 2048:
mustRefresh = true;
Expand Down Expand Up @@ -1320,6 +1472,14 @@ private void SoftButtonCallback(IntPtr device, IntPtr buttons, IntPtr context)

mustRefresh = SetTab(LcdTab.Engineer);
}
else
{
mustRefresh = true;
CurrentTab = LcdTab.None;
_lastTab = LcdTab.Init;
_currentTabCursor = LcdTab.None;
_currentPage = LcdPage.Collapsed;
}
break;
case 1024:
break;
Expand Down
4 changes: 2 additions & 2 deletions Elite/Properties/AssemblyInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.7.8.0")]
[assembly: AssemblyFileVersion("1.7.8.0")]
[assembly: AssemblyVersion("1.7.9.0")]
[assembly: AssemblyFileVersion("1.7.9.0")]

[assembly: log4net.Config.XmlConfigurator(Watch = true)]
9 changes: 8 additions & 1 deletion Elite/Templates/cardcaption.cshtml
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,14 @@
}
else if (Model.CurrentTab == LcdTab.Engineers)
{
<div class="cardcaption">&#x25c0; @(Model.EngineersList[Model.CurrentCard].Faction) &#x25b6;</div>
if (Model.EngineersList == null || Model.CurrentCard >= Model.EngineersList.Count)
{
<div class="cardcaption">&#x25c0; ??? &#x25b6;</div>
}
else
{
<div class="cardcaption">&#x25c0; @(Model.EngineersList[Model.CurrentCard].Faction) &#x25b6;</div>
}
}
else if (Model.CurrentTab == LcdTab.Powers)
{
Expand Down
Binary file modified Elite/Templates/images/engineers/Jude Navarro.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Elite/Templates/images/engineers/Kit Fowler.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Elite/Templates/images/engineers/Oden Geiger.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Elite/Templates/images/engineers/Wellington Beck.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
18 changes: 18 additions & 0 deletions Elite/joysticksettings.config
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,24 @@
<add key="LeftButton" value="24" />
<add key="RightButton" value="22" />
<add key="PushButton" value="25" />
<add key="NavigationButton" value="0" />
<add key="TargetButton" value="0" />
<add key="CommanderButton" value="0" />
<add key="GalnetButton" value="0" />
<add key="MissionsButton" value="0" />
<add key="ChatButton" value="0" />
<add key="HWInfoButton" value="0" />
<add key="ShipButton" value="0" />
<add key="MaterialsButton" value="0" />
<add key="CargoButton" value="0" />
<add key="EngineerButton" value="0" />
<add key="ShipLockerButton" value="0" />
<add key="BackPackButton" value="0" />
<add key="POIButton" value="0" />
<add key="GalaxyButton" value="0" />
<add key="EngineersButton" value="0" />
<add key="PowersButton" value="0" />
<add key="MiningButton" value="0" />
<add key="FipSerialNumber" value="window" />
<add key="WindowWidth" value="400" />
<add key="WindowHeight" value="500" />
Expand Down
4 changes: 2 additions & 2 deletions ImportData/Properties/AssemblyInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.7.8.0")]
[assembly: AssemblyFileVersion("1.7.8.0")]
[assembly: AssemblyVersion("1.7.9.0")]
[assembly: AssemblyFileVersion("1.7.9.0")]

[assembly: log4net.Config.XmlConfigurator(Watch = true)]
Loading

0 comments on commit 2b566ec

Please sign in to comment.