Skip to content

Commit ca33533

Browse files
committed
настроил таблицы скорострела в соответствии с версией игры 11.4.0
1 parent ad42c6b commit ca33533

8 files changed

Lines changed: 270 additions & 118 deletions

File tree

SpeedKernel/SKernel_Defs.h

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -40,15 +40,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
4040
#define WARTEN_PRO_100K 1000
4141

4242

43-
// names for RF versions
44-
#define NAME_RF_NONE _T("RF_NONE")
45-
#define NAME_RF_058 _T("RF_058")
46-
#define NAME_RF_059 _T("RF_059")
47-
#define NAME_RF_062 _T("RF_062")
48-
#define NAME_RF_065 _T("RF_065")
49-
#define NAME_RF_1140 _T("RF_1140")
50-
#define NAME_RF_USER _T("RF_USER")
51-
5243
/*!
5344
\def RFPERC(x)
5445
\brief RF(x) converts RF(x) into RF x%

SpeedKernel/SKernel_Misc.cpp

Lines changed: 162 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
5959
#ifndef WIN32
6060
#undef ASMRAND
6161
unsigned int _lrotl( unsigned int num, int shift ) {
62-
register unsigned int value = num;
63-
register unsigned int bit;
62+
unsigned int value = num;
63+
unsigned int bit;
6464

6565
#if UINT_MAX == 0xFFFFFFFF
6666
// 32bit machine
@@ -633,9 +633,9 @@ bool CSpeedKernel::LoadLangFile(const char *langfile) {
633633
m_KBNames[T_ZER] = _T("Zerst.");
634634
m_KBNames[T_TS] = _T("Rip");
635635
m_KBNames[T_IC] = _T("Schlachtkr.");
636-
m_KBNames[T_CRA] = _T("Crawler"); // TODO: Check
637-
m_KBNames[T_REAP] = _T("Reaper"); // TODO: Check
638-
m_KBNames[T_PF] = _T("Pathfinder"); // TODO: Check
636+
m_KBNames[T_CRA] = _T("Crawler");
637+
m_KBNames[T_REAP] = _T("Reaper");
638+
m_KBNames[T_PF] = _T("Pathfinder");
639639
m_KBNames[T_RAK] = _T("Rak.");
640640
m_KBNames[T_LL] = _T("L.Laser");
641641
m_KBNames[T_SL] = _T("S.Laser");
@@ -1015,13 +1015,15 @@ Res CSpeedKernel::StringToRes(const genstring &val) {
10151015
return res;
10161016
}
10171017

1018+
#define RF_TO_SIM(rf) (10000 / rf)
1019+
10181020
void CSpeedKernel::FillRFTable(RFTYPE rfType)
10191021
{
10201022
int i;
10211023
for(i = 0; i < T_END; i++)
10221024
{
10231025
for(int j = 0; j < T_END; j++)
1024-
m_RF[i][j] = 10000;
1026+
m_RF[i][j] = RF_TO_SIM(1);
10251027
}
10261028

10271029
switch(rfType)
@@ -1030,92 +1032,169 @@ void CSpeedKernel::FillRFTable(RFTYPE rfType)
10301032
{
10311033
for(i = 0; i < T_SHIPEND; i++)
10321034
{
1033-
m_RF[i][T_SPIO] = 2000;
1034-
m_RF[i][T_SAT] = 2000;
1035+
m_RF[i][T_SPIO] = RF_TO_SIM(5);
1036+
m_RF[i][T_SAT] = RF_TO_SIM(5);
10351037
}
1036-
m_RF[T_SPIO][T_SPIO] = 10000;
1037-
m_RF[T_SPIO][T_SAT] = 10000;
1038-
m_RF[T_SAT][T_SAT] = 10000;
1039-
1040-
m_RF[T_KREUZER][T_LJ] = 3333;
1041-
m_RF[T_KREUZER][T_RAK] = 1000;
1042-
1043-
m_RF[T_ZER][T_LL] = 1000;
1044-
1045-
m_RF[T_BOMBER][T_LL] = 500;
1046-
m_RF[T_BOMBER][T_RAK] = 500;
1047-
m_RF[T_BOMBER][T_SL] = 1000;
1048-
m_RF[T_BOMBER][T_IONEN] = 1000;
1049-
1050-
m_RF[T_TS][T_SPIO] = 8;
1051-
m_RF[T_TS][T_SAT] = 8;
1052-
m_RF[T_TS][T_RAK] = 50;
1053-
m_RF[T_TS][T_LL] = 50;
1054-
m_RF[T_TS][T_LJ] = 50;
1055-
m_RF[T_TS][T_SS] = 333;
1056-
m_RF[T_TS][T_SL] = 100;
1057-
m_RF[T_TS][T_IONEN] = 100;
1058-
m_RF[T_TS][T_SJ] = 100;
1059-
m_RF[T_TS][T_GAUSS] = 200;
1060-
m_RF[T_TS][T_KREUZER] = 303;
1061-
m_RF[T_TS][T_BOMBER] = 400;
1062-
m_RF[T_TS][T_ZER] = 2000;
1063-
m_RF[T_TS][T_KT] = 40;
1064-
m_RF[T_TS][T_GT] = 40;
1065-
m_RF[T_TS][T_REC] = 40;
1066-
m_RF[T_TS][T_KOLO] = 40;
1038+
1039+
m_RF[T_KREUZER][T_LJ] = RF_TO_SIM(3);
1040+
m_RF[T_KREUZER][T_RAK] = RF_TO_SIM(10);
1041+
1042+
m_RF[T_ZER][T_LL] = RF_TO_SIM(10);
1043+
1044+
m_RF[T_BOMBER][T_RAK] = RF_TO_SIM(20);
1045+
m_RF[T_BOMBER][T_LL] = RF_TO_SIM(20);
1046+
m_RF[T_BOMBER][T_SL] = RF_TO_SIM(10);
1047+
m_RF[T_BOMBER][T_IONEN] = RF_TO_SIM(10);
1048+
1049+
m_RF[T_TS][T_SPIO] = RF_TO_SIM(1250);
1050+
m_RF[T_TS][T_SAT] = RF_TO_SIM(1250);
1051+
m_RF[T_TS][T_RAK] = RF_TO_SIM(200);
1052+
m_RF[T_TS][T_LL] = RF_TO_SIM(200);
1053+
m_RF[T_TS][T_LJ] = RF_TO_SIM(200);
1054+
m_RF[T_TS][T_SS] = RF_TO_SIM(30);
1055+
m_RF[T_TS][T_SL] = RF_TO_SIM(100);
1056+
m_RF[T_TS][T_IONEN] = RF_TO_SIM(100);
1057+
m_RF[T_TS][T_SJ] = RF_TO_SIM(100);
1058+
m_RF[T_TS][T_GAUSS] = RF_TO_SIM(50);
1059+
m_RF[T_TS][T_KREUZER] = RF_TO_SIM(33);
1060+
m_RF[T_TS][T_BOMBER] = RF_TO_SIM(25);
1061+
m_RF[T_TS][T_ZER] = RF_TO_SIM(5);
1062+
m_RF[T_TS][T_KT] = RF_TO_SIM(250);
1063+
m_RF[T_TS][T_GT] = RF_TO_SIM(250);
1064+
m_RF[T_TS][T_REC] = RF_TO_SIM(250);
1065+
m_RF[T_TS][T_KOLO] = RF_TO_SIM(250);
10671066

10681067
}
10691068
break;
10701069
case RF_075:
10711070
{
10721071
for(i = 0; i < T_SHIPEND; i++)
10731072
{
1074-
m_RF[i][T_SPIO] = 2000;
1075-
m_RF[i][T_SAT] = 2000;
1073+
m_RF[i][T_SPIO] = RF_TO_SIM(5);
1074+
m_RF[i][T_SAT] = RF_TO_SIM(5);
1075+
}
1076+
m_RF[T_SPIO][T_SPIO] = RF_TO_SIM(1);
1077+
m_RF[T_SPIO][T_SAT] = RF_TO_SIM(1);
1078+
m_RF[T_SAT][T_SAT] = RF_TO_SIM(1);
1079+
m_RF[T_SAT][T_SPIO] = RF_TO_SIM(1);
1080+
1081+
m_RF[T_SJ][T_KT] = RF_TO_SIM(3);
1082+
1083+
m_RF[T_KREUZER][T_LJ] = RF_TO_SIM(6);
1084+
m_RF[T_KREUZER][T_RAK] = RF_TO_SIM(10);
1085+
1086+
m_RF[T_ZER][T_LL] = RF_TO_SIM(10);
1087+
m_RF[T_ZER][T_IC] = RF_TO_SIM(2);
1088+
1089+
m_RF[T_BOMBER][T_RAK] = RF_TO_SIM(20);
1090+
m_RF[T_BOMBER][T_LL] = RF_TO_SIM(20);
1091+
m_RF[T_BOMBER][T_SL] = RF_TO_SIM(10);
1092+
m_RF[T_BOMBER][T_IONEN] = RF_TO_SIM(10);
1093+
1094+
m_RF[T_TS][T_SPIO] = RF_TO_SIM(1250);
1095+
m_RF[T_TS][T_SAT] = RF_TO_SIM(1250);
1096+
m_RF[T_TS][T_RAK] = RF_TO_SIM(200);
1097+
m_RF[T_TS][T_LL] = RF_TO_SIM(200);
1098+
m_RF[T_TS][T_LJ] = RF_TO_SIM(200);
1099+
m_RF[T_TS][T_SS] = RF_TO_SIM(30);
1100+
m_RF[T_TS][T_SL] = RF_TO_SIM(100);
1101+
m_RF[T_TS][T_IONEN] = RF_TO_SIM(100);
1102+
m_RF[T_TS][T_SJ] = RF_TO_SIM(100);
1103+
m_RF[T_TS][T_GAUSS] = RF_TO_SIM(50);
1104+
m_RF[T_TS][T_KREUZER] = RF_TO_SIM(33);
1105+
m_RF[T_TS][T_BOMBER] = RF_TO_SIM(25);
1106+
m_RF[T_TS][T_ZER] = RF_TO_SIM(5);
1107+
m_RF[T_TS][T_KT] = RF_TO_SIM(250);
1108+
m_RF[T_TS][T_GT] = RF_TO_SIM(250);
1109+
m_RF[T_TS][T_REC] = RF_TO_SIM(250);
1110+
m_RF[T_TS][T_KOLO] = RF_TO_SIM(250);
1111+
m_RF[T_TS][T_IC] = RF_TO_SIM(15);
1112+
1113+
m_RF[T_IC][T_KT] = RF_TO_SIM(3);
1114+
m_RF[T_IC][T_GT] = RF_TO_SIM(3);
1115+
m_RF[T_IC][T_SJ] = RF_TO_SIM(4);
1116+
m_RF[T_IC][T_KREUZER] = RF_TO_SIM(4);
1117+
m_RF[T_IC][T_SS] = RF_TO_SIM(7);
1118+
}
1119+
break;
1120+
// Current version from which SpeedSim update was started
1121+
case RF_1140:
1122+
{
1123+
// All ships have the same rapidfire against probes, lamps, and crawlers
1124+
for (i = 0; i < T_SHIPEND; i++)
1125+
{
1126+
m_RF[i][T_SPIO] = RF_TO_SIM(5);
1127+
m_RF[i][T_SAT] = RF_TO_SIM(5);
1128+
m_RF[i][T_CRA] = RF_TO_SIM(5); // [new] Crawler
10761129
}
1077-
m_RF[T_SPIO][T_SPIO] = 10000;
1078-
m_RF[T_SPIO][T_SAT] = 10000;
1079-
m_RF[T_SAT][T_SAT] = 10000;
1080-
m_RF[T_SAT][T_SPIO] = 10000;
1081-
1082-
m_RF[T_SJ][T_KT] = 3333;
1083-
1084-
m_RF[T_KREUZER][T_LJ] = 1667;
1085-
m_RF[T_KREUZER][T_RAK] = 1000;
1086-
1087-
m_RF[T_ZER][T_LL] = 1000;
1088-
m_RF[T_ZER][T_IC] = 5000;
1089-
1090-
m_RF[T_BOMBER][T_LL] = 500;
1091-
m_RF[T_BOMBER][T_RAK] = 500;
1092-
m_RF[T_BOMBER][T_SL] = 1000;
1093-
m_RF[T_BOMBER][T_IONEN] = 1000;
1094-
1095-
m_RF[T_TS][T_SPIO] = 8;
1096-
m_RF[T_TS][T_SAT] = 8;
1097-
m_RF[T_TS][T_RAK] = 50;
1098-
m_RF[T_TS][T_LL] = 50;
1099-
m_RF[T_TS][T_LJ] = 50;
1100-
m_RF[T_TS][T_SS] = 333;
1101-
m_RF[T_TS][T_SL] = 100;
1102-
m_RF[T_TS][T_IONEN] = 100;
1103-
m_RF[T_TS][T_SJ] = 100;
1104-
m_RF[T_TS][T_GAUSS] = 200;
1105-
m_RF[T_TS][T_KREUZER] = 303;
1106-
m_RF[T_TS][T_BOMBER] = 400;
1107-
m_RF[T_TS][T_ZER] = 2000;
1108-
m_RF[T_TS][T_KT] = 40;
1109-
m_RF[T_TS][T_GT] = 40;
1110-
m_RF[T_TS][T_REC] = 40;
1111-
m_RF[T_TS][T_KOLO] = 40;
1112-
m_RF[T_TS][T_IC] = 667;
1113-
1114-
m_RF[T_IC][T_KT] = 3333;
1115-
m_RF[T_IC][T_GT] = 3333;
1116-
m_RF[T_IC][T_SJ] = 2500;
1117-
m_RF[T_IC][T_KREUZER] = 2500;
1118-
m_RF[T_IC][T_SS] = 1429;
1130+
// Restore defaults for mentioned above
1131+
m_RF[T_SPIO][T_SPIO] = RF_TO_SIM(1);
1132+
m_RF[T_SPIO][T_SAT] = RF_TO_SIM(1);
1133+
m_RF[T_SPIO][T_CRA] = RF_TO_SIM(1);
1134+
m_RF[T_SAT][T_SAT] = RF_TO_SIM(1);
1135+
m_RF[T_SAT][T_SPIO] = RF_TO_SIM(1);
1136+
m_RF[T_SAT][T_CRA] = RF_TO_SIM(1);
1137+
m_RF[T_CRA][T_SPIO] = RF_TO_SIM(1);
1138+
m_RF[T_CRA][T_SAT] = RF_TO_SIM(1);
1139+
m_RF[T_CRA][T_CRA] = RF_TO_SIM(1);
1140+
1141+
m_RF[T_SJ][T_KT] = RF_TO_SIM(3);
1142+
1143+
m_RF[T_KREUZER][T_LJ] = RF_TO_SIM(6);
1144+
m_RF[T_KREUZER][T_RAK] = RF_TO_SIM(10);
1145+
1146+
m_RF[T_SS][T_PF] = RF_TO_SIM(5); // [new] Battleship vs Pathfinder
1147+
1148+
m_RF[T_ZER][T_LL] = RF_TO_SIM(10);
1149+
m_RF[T_ZER][T_IC] = RF_TO_SIM(2);
1150+
1151+
m_RF[T_BOMBER][T_RAK] = RF_TO_SIM(20);
1152+
m_RF[T_BOMBER][T_LL] = RF_TO_SIM(20);
1153+
m_RF[T_BOMBER][T_SL] = RF_TO_SIM(10);
1154+
m_RF[T_BOMBER][T_GAUSS] = RF_TO_SIM(5); // [new] Bomber vs Gauss
1155+
m_RF[T_BOMBER][T_IONEN] = RF_TO_SIM(10);
1156+
m_RF[T_BOMBER][T_PLASMA] = RF_TO_SIM(5); // [new] Bomber vs Plasma
1157+
1158+
m_RF[T_TS][T_SPIO] = RF_TO_SIM(250); // [new] (lower)
1159+
m_RF[T_TS][T_SAT] = RF_TO_SIM(250); // [new] (lower)
1160+
m_RF[T_TS][T_KT] = RF_TO_SIM(250);
1161+
m_RF[T_TS][T_GT] = RF_TO_SIM(250);
1162+
m_RF[T_TS][T_LJ] = RF_TO_SIM(200);
1163+
m_RF[T_TS][T_SJ] = RF_TO_SIM(100);
1164+
m_RF[T_TS][T_KREUZER] = RF_TO_SIM(33);
1165+
m_RF[T_TS][T_SS] = RF_TO_SIM(30);
1166+
m_RF[T_TS][T_KOLO] = RF_TO_SIM(250);
1167+
m_RF[T_TS][T_REC] = RF_TO_SIM(250);
1168+
m_RF[T_TS][T_BOMBER] = RF_TO_SIM(25);
1169+
m_RF[T_TS][T_ZER] = RF_TO_SIM(5);
1170+
m_RF[T_TS][T_IC] = RF_TO_SIM(15);
1171+
m_RF[T_TS][T_CRA] = RF_TO_SIM(250); // [new] Crawler
1172+
m_RF[T_TS][T_REAP] = RF_TO_SIM(10); // [new] Reaper
1173+
m_RF[T_TS][T_PF] = RF_TO_SIM(30); // [new] Pathfinder
1174+
m_RF[T_TS][T_RAK] = RF_TO_SIM(200);
1175+
m_RF[T_TS][T_LL] = RF_TO_SIM(200);
1176+
m_RF[T_TS][T_SL] = RF_TO_SIM(100);
1177+
m_RF[T_TS][T_GAUSS] = RF_TO_SIM(50);
1178+
m_RF[T_TS][T_IONEN] = RF_TO_SIM(100);
1179+
1180+
m_RF[T_IC][T_KT] = RF_TO_SIM(3);
1181+
m_RF[T_IC][T_GT] = RF_TO_SIM(3);
1182+
m_RF[T_IC][T_SJ] = RF_TO_SIM(4);
1183+
m_RF[T_IC][T_KREUZER] = RF_TO_SIM(4);
1184+
m_RF[T_IC][T_SS] = RF_TO_SIM(7);
1185+
1186+
// [new] Reaper
1187+
m_RF[T_REAP][T_SS] = RF_TO_SIM(7);
1188+
m_RF[T_REAP][T_BOMBER] = RF_TO_SIM(4);
1189+
m_RF[T_REAP][T_ZER] = RF_TO_SIM(3);
1190+
1191+
// [new] Pathfinder
1192+
m_RF[T_PF][T_KREUZER] = RF_TO_SIM(3);
1193+
m_RF[T_PF][T_LJ] = RF_TO_SIM(3);
1194+
m_RF[T_PF][T_SJ] = RF_TO_SIM(2);
1195+
1196+
// [new] Ion Cannon vs. Reaper. Doesn't help much, no matter how hard the developers try - ion is still just as useless
1197+
m_RF[T_IONEN][T_REAP] = RF_TO_SIM(2);
11191198
}
11201199
break;
11211200
}

SpeedKernel/SKernel_Sim.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -483,7 +483,6 @@ void CSpeedKernel::ShipShoots(Obj& o, int Team, DWORD AtterID)
483483
Dam2 = Dam;
484484
DefferID = 0;
485485
{
486-
//PR_PROF_FUNC(F_RANDNR);
487486
// get random target from enemy
488487
Ziel = RandomNumber(ListSize);
489488
DefferID = (*treffer)[Ziel].PlayerID;

SpeedKernel/SpeedKernel.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ CSpeedKernel::CSpeedKernel()
6161
m_SimulateFreedItsData = true;
6262
LoadLangFile(NULL);
6363
// set to newest version
64-
FillRFTable(RF_075);
64+
FillRFTable(RF_1140);
6565
m_DefRebuildFac = DEF_AUFBAU_FAKTOR;
6666
m_LastScanHadTechs = false;
6767
m_ShipDataFromFile = false;
@@ -155,7 +155,7 @@ void CSpeedKernel::Reset()
155155
memset(m_TechsAtt, 0, MAX_PLAYERS_PER_TEAM * sizeof(ShipTechs));
156156
memset(m_TechsDef, 0, MAX_PLAYERS_PER_TEAM * sizeof(ShipTechs));
157157
memset(&m_Result, 0, sizeof(BattleResult));
158-
FillRFTable(RF_075);
158+
FillRFTable(RF_1140);
159159
m_NumPlayersPerTeam[ATTER] = 0;
160160
m_NumPlayersPerTeam[DEFFER] = 0;
161161
m_LossesToDF = 30;

SpeedSim/SpeedSave.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ int SaveOpts(int num)
138138
g_CurSaveData = num;
139139

140140
if(SendDlgItemMessage(g_hwndDlg, IDC_RAPID, BM_GETCHECK, 0, 0) == BST_CHECKED)
141-
g_Options.RFType = RF_075;
141+
g_Options.RFType = RF_1140;
142142
else
143143
g_Options.RFType = RF_NONE;
144144

@@ -571,7 +571,7 @@ bool NewGetSaveData(TCHAR* file, int num, SaveData &data)
571571
data.Techs.Combust = GetPrivateProfileInt(section, _T("CombustEngine"), 0, CFGFile);
572572
data.iSpeedFactor = GetPrivateProfileInt(section, _T("SpeedFactor"), 1, CFGFile);
573573
data.NumSims = GetPrivateProfileInt(section, _T("NumSim"), 100, CFGFile);
574-
data.RFType = GetPrivateProfileInt(section, _T("RFType"), (int)RF_075, CFGFile);
574+
data.RFType = GetPrivateProfileInt(section, _T("RFType"), (int)RF_1140, CFGFile);
575575
data.Techs.STechs.Weapon = GetPrivateProfileInt(section, _T("WeapTech"), 0, CFGFile);
576576
data.Techs.STechs.Shield = GetPrivateProfileInt(section, _T("ShieldTech"), 0, CFGFile);
577577
data.Techs.STechs.Armour = GetPrivateProfileInt(section, _T("HullTech"), 0, CFGFile);

SpeedSim/SpeedSim.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ void UpdateKernel(int FleetID)
242242
// get RF
243243
if(IsDlgButtonChecked(g_hwndDlg, IDC_RAPID) == BST_CHECKED)
244244
{
245-
sim.SetRF(RF_075);
245+
sim.SetRF(RF_1140);
246246
if(strlen(g_Options.RFFileName))
247247
{
248248
sim.LoadRFFile(g_Options.RFFileName);

SpeedSim/SpeedSim.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -310,7 +310,7 @@ struct SaveData {
310310
{
311311
bUseOldBS = false;
312312
bCheckTechs = false;
313-
RFType = RF_075;
313+
RFType = RF_1140;
314314
bDelDefOnSwitch = false;
315315
DefTF = false;
316316
BWCase = false;

0 commit comments

Comments
 (0)