@@ -59,8 +59,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
5959#ifndef WIN32
6060#undef ASMRAND
6161unsigned 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+
10181020void 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 }
0 commit comments