Skip to content

Commit f4f3c36

Browse files
committed
Hook of the Reaper Release v1.1.8. Fix 2 bugs and did enhancment for
delay buffer on Ammo 0 for Reaper
1 parent 9e8dda1 commit f4f3c36

File tree

14 files changed

+604
-64
lines changed

14 files changed

+604
-64
lines changed

COMDeviceList/ComDeviceList.cpp

Lines changed: 90 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ ComDeviceList::ComDeviceList()
2323
displayLifePriority = false;
2424
displayOtherPriority = false;
2525
enableNewGameFileCreation = false;
26+
enableReaperAmmo0Delay = true;
27+
repearAmmo0Delay = DEFAULTAMMO0DELAY;
28+
reaperHoldSlideTime = REAPERHOLDSLIDETIME;
2629

2730
//More Set Defaults
2831
for(quint8 comPortIndx=0;comPortIndx<MAXCOMPORTS;comPortIndx++)
@@ -91,7 +94,6 @@ ComDeviceList::ComDeviceList()
9194
if(!iniMAMEDirExists)
9295
currentPathDir.mkdir (INIMAMEFILEDIR);
9396

94-
9597
//Set Dir back to Current Path
9698
currentPathDir.setPath (currentPath);
9799

@@ -1380,6 +1382,19 @@ void ComDeviceList::SaveSettings()
13801382
else
13811383
out << "0\n";
13821384

1385+
if(enableReaperAmmo0Delay)
1386+
out << "1\n";
1387+
else
1388+
out << "0\n";
1389+
1390+
//Output the Reaper Ammo 0 Delay Value
1391+
rtDisplay = QString::number(repearAmmo0Delay)+"\n";
1392+
out << rtDisplay;
1393+
1394+
//Output the Reaper Hold Slide Time
1395+
rtDisplay = QString::number(reaperHoldSlideTime)+"\n";
1396+
out << rtDisplay;
1397+
13831398

13841399
out << ENDOFFILE;
13851400

@@ -1667,24 +1682,68 @@ void ComDeviceList::LoadSettings()
16671682
//Setting for New Game File Creation
16681683
line = in.readLine();
16691684

1670-
if(line.startsWith (ENDOFFILE))
1685+
if(line.startsWith ("1"))
1686+
{
1687+
enableNewGameFileCreation = true;
1688+
}
1689+
else if(line.startsWith ("0"))
16711690
{
16721691
enableNewGameFileCreation = false;
1692+
}
1693+
else
1694+
{
1695+
QMessageBox::critical (nullptr, "Settings File Error", "Settings save data file is corrupted at Enable New Game File Creation. Please close program and solve file problem.", QMessageBox::Ok);
1696+
return;
1697+
}
1698+
1699+
1700+
//Setting for New Game File Creation
1701+
line = in.readLine();
1702+
1703+
if(line.startsWith (ENDOFFILE))
1704+
{
1705+
enableReaperAmmo0Delay = true;
1706+
repearAmmo0Delay = DEFAULTAMMO0DELAY;
1707+
reaperHoldSlideTime = REAPERHOLDSLIDETIME;
16731708
loadSetData.close ();
16741709
this->SaveSettings();
16751710
this->UpdateLightGunWithSettings ();
16761711
return;
16771712
}
16781713
else if(line.startsWith ("1"))
1679-
enableNewGameFileCreation = true;
1714+
enableReaperAmmo0Delay = true;
16801715
else if(line.startsWith ("0"))
1681-
enableNewGameFileCreation = false;
1716+
enableReaperAmmo0Delay = false;
16821717
else
16831718
{
1684-
QMessageBox::critical (nullptr, "Settings File Error", "Settings save data file is corrupted at Enable New Game File Creation. Please close program and solve file problem.", QMessageBox::Ok);
1719+
QMessageBox::critical (nullptr, "Settings File Error", "Settings save data file is corrupted at Enable Reaper Ammo 0 Delay. Please close program and solve file problem.", QMessageBox::Ok);
16851720
return;
16861721
}
16871722

1723+
//Next Line is the Reaper Ammo 0 Delay
1724+
line = in.readLine();
1725+
1726+
repearAmmo0Delay = line.toUInt (&isNumber);
1727+
1728+
if(!isNumber || repearAmmo0Delay == 0)
1729+
{
1730+
repearAmmo0Delay = DEFAULTAMMO0DELAY;
1731+
QMessageBox::critical (nullptr, "Settings File Error", "Settings save data file is corrupted. Reaper Ammo 0 Delay is not a number, setting to default.", QMessageBox::Ok);
1732+
}
1733+
1734+
//Next Line is the Reaper Hold Slide Back Time
1735+
line = in.readLine();
1736+
1737+
reaperHoldSlideTime = line.toUInt (&isNumber);
1738+
1739+
if(!isNumber || reaperHoldSlideTime < REAPERHOLDSLIDEMIN || reaperHoldSlideTime > REAPERHOLDSLIDEMAX)
1740+
{
1741+
reaperHoldSlideTime = REAPERHOLDSLIDETIME;
1742+
QMessageBox::critical (nullptr, "Settings File Error", "Settings save data file is corrupted. Reaper's Hold Slide Back Timing is not a number or out of range, setting to default.", QMessageBox::Ok);
1743+
}
1744+
1745+
1746+
16881747
//Next Line is End of File
16891748
line = in.readLine();
16901749

@@ -1850,6 +1909,31 @@ void ComDeviceList::SetEnableNewGameFileCreation(bool enableNGFC)
18501909
enableNewGameFileCreation = enableNGFC;
18511910
}
18521911

1912+
quint8 ComDeviceList::GetReaperAmmo0Delay(bool *isAmmo0DelayEnabled, quint16 *reaperHST)
1913+
{
1914+
*isAmmo0DelayEnabled = enableReaperAmmo0Delay;
1915+
*reaperHST = reaperHoldSlideTime;
1916+
return repearAmmo0Delay;
1917+
}
1918+
1919+
void ComDeviceList::SetReaperAmmo0Delay(bool isAmmo0DelayEnabled, quint8 delayTime, quint16 reaperHST)
1920+
{
1921+
enableReaperAmmo0Delay = isAmmo0DelayEnabled;
1922+
repearAmmo0Delay = delayTime;
1923+
reaperHoldSlideTime = reaperHST;
1924+
1925+
for(quint8 x = 0; x < numberLightGuns; x++)
1926+
{
1927+
if(p_lightGunList[x]->GetDefaultLightGun() && p_lightGunList[x]->GetDefaultLightGunNumber() == RS3_REAPER)
1928+
{
1929+
p_lightGunList[x]->SetReaperAmmo0Delay(enableReaperAmmo0Delay, repearAmmo0Delay, reaperHoldSlideTime);
1930+
}
1931+
}
1932+
}
1933+
1934+
1935+
1936+
18531937
void ComDeviceList::UpdateLightGunWithSettings()
18541938
{
18551939
bool isDefaultLG;
@@ -1865,6 +1949,7 @@ void ComDeviceList::UpdateLightGunWithSettings()
18651949
if(isDefaultLG && defaultLGNumber == RS3_REAPER)
18661950
{
18671951
p_lightGunList[x]->SetDisableReaperLEDs(disbleReaperLEDs);
1952+
p_lightGunList[x]->SetReaperAmmo0Delay(enableReaperAmmo0Delay, repearAmmo0Delay, reaperHoldSlideTime);
18681953
p_lightGunList[x]->LoadDefaultLGCommands();
18691954
}
18701955

COMDeviceList/ComDeviceList.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,14 @@
1616
#include <QMap>
1717

1818

19+
20+
1921
#include "LightGun.h"
2022
#include "ComPortDevice.h"
2123

2224
class ComDeviceList
2325
{
26+
2427
public:
2528
ComDeviceList();
2629
~ComDeviceList();
@@ -129,6 +132,10 @@ class ComDeviceList
129132
bool GetEnableNewGameFileCreation();
130133
void SetEnableNewGameFileCreation(bool enableNGFC);
131134

135+
//Enable and Delay for Reamper Ammo 0 Delay
136+
quint8 GetReaperAmmo0Delay(bool *isAmmo0DelayEnabled, quint16 *reaperHST);
137+
void SetReaperAmmo0Delay(bool isAmmo0DelayEnabled, quint8 delayTime, quint16 reaperHST);
138+
132139
//Update Light Gun Settings
133140
void UpdateLightGunWithSettings();
134141

@@ -208,6 +215,9 @@ class ComDeviceList
208215
bool displayLifePriority;
209216
bool displayOtherPriority;
210217
bool enableNewGameFileCreation;
218+
bool enableReaperAmmo0Delay;
219+
quint8 repearAmmo0Delay;
220+
quint16 reaperHoldSlideTime;
211221

212222
quint8 userRecoilPriority[NUMBEROFRECOILS];
213223

0 commit comments

Comments
 (0)