@@ -59,8 +59,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
59
59
#ifndef WIN32
60
60
#undef ASMRAND
61
61
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;
64
64
65
65
#if UINT_MAX == 0xFFFFFFFF
66
66
// 32bit machine
@@ -633,9 +633,9 @@ bool CSpeedKernel::LoadLangFile(const char *langfile) {
633
633
m_KBNames[T_ZER] = _T (" Zerst." );
634
634
m_KBNames[T_TS] = _T (" Rip" );
635
635
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" );
639
639
m_KBNames[T_RAK] = _T (" Rak." );
640
640
m_KBNames[T_LL] = _T (" L.Laser" );
641
641
m_KBNames[T_SL] = _T (" S.Laser" );
@@ -1015,13 +1015,15 @@ Res CSpeedKernel::StringToRes(const genstring &val) {
1015
1015
return res;
1016
1016
}
1017
1017
1018
+ #define RF_TO_SIM (rf ) (10000 / rf)
1019
+
1018
1020
void CSpeedKernel::FillRFTable (RFTYPE rfType)
1019
1021
{
1020
1022
int i;
1021
1023
for (i = 0 ; i < T_END; i++)
1022
1024
{
1023
1025
for (int j = 0 ; j < T_END; j++)
1024
- m_RF[i][j] = 10000 ;
1026
+ m_RF[i][j] = RF_TO_SIM ( 1 ) ;
1025
1027
}
1026
1028
1027
1029
switch (rfType)
@@ -1030,92 +1032,169 @@ void CSpeedKernel::FillRFTable(RFTYPE rfType)
1030
1032
{
1031
1033
for (i = 0 ; i < T_SHIPEND; i++)
1032
1034
{
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 ) ;
1035
1037
}
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 );
1067
1066
1068
1067
}
1069
1068
break ;
1070
1069
case RF_075:
1071
1070
{
1072
1071
for (i = 0 ; i < T_SHIPEND; i++)
1073
1072
{
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
1076
1129
}
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 );
1119
1198
}
1120
1199
break ;
1121
1200
}
0 commit comments