OK, so the silence is because I have been working on a particularly, tedious, mind-numbing part of the project. As I explained above, not all static versions of aircraft MODs are included in BAT, so I had to write a substitution routine, but it is not perfect, and it produces some unpredictable results.
I hate doing things half-ass, so I decided to add a manual substitution table to override certain aircraft classes because I wanted the immersion to be a little bit closer to the desired effect instead of crazy substitutions.
For example, there are no static objects for the MiG-7 or -11, so if you choose to do a substitution for the ground objects, the equivalent of either plane would be the MiG-3U, not perfect, but at least there is a resemblance. Some of them are just to have something there. There is no static object for the Bf-109W2 floatplane, so the "parked" planes, if you choose the option, would be late A6M Floatplanes.
Some plane objects have no equivalent, so I have an option to use static objects from other lists, like other Stationary objects, or even Objects.
There are only a few of those, for example the V1 and flyable V1s do not have static equipments… but there is a V1 static object ("buildings.House$V1"). Same concept with the flyable/driveable vehicles... there is no "static plane" for the Kubelwagen, but you can use the static equivalent ("vehicles.stationary.Stationary$VW82").
Good news is that as new objects are updated, say for example, the Bf-109W2 static is really added, the updated script will always use existing objects first, and only look at manual overrides second, then algorithms third. In other words, the updated script will include the new objects instead of the "approximated" substitutions.
Anyway, this took hours, going through 1200 or so entries. There are 145 unique manually generated substitutions, and if you are really bored, here they are:
Format:
[code I am looking for]=[use this definition instead]=[type]
For static planes, there is a simplified lists of types:
ff = fighter
bb = bomber
ga = ground attack
rr = recce
ss = seaplane
tt = transport
gg = glider
If the string "<*>" is found, this means the [type] field has all the information needed (coming from a non-static aircraft source).
P_5dt=R_5=rr
SNC_1=CW_21=rr
S_T6=Texan_AT6=ga
S_AT6=Texan_AT6=ga
S_SNJ3=S_SNJ4=ga
SNJ_USN=S_SNJ4=rr
BU_131=Ar_66C=rr
F2G=F4U_5=rr
CRPracer12=P_51D30NA=rr
Target_Banner=G_11=gg
Target_Message=G_11=gg
FW190D9early=FW_190D9=ff
FW190D9r5=FW_190D9=ff
FW_187A0=BF_110C4=ff
FW_187A1=BF_110C4=ff
Ar_240A=ME_210CA1=ga
Ar_240C=ME_210CA1=ga
Ar_240C2=ME_410B=ff
TA_154_A0=UHU=ff
JU_87R1=JU_87B2=bb
JU_87R2=JU_87B2=bb
FW58B=Ju_F13=bb
Do217_E2=Do217_K1=bb
JU_188beta=JU_88A4=bb
JU_388K=JU_88A4=bb
Do_22L=Hs126K_6=rr
Fury_S=GLADIATOR1=ff
F534=CW_21=ff
MustangMkI=P_51B=ff
MARTIN_167=Beaufort1Early=bb
BristolBombay=WhitleyMkV=bb
Manchester_early=WhitleyMkV=bb
Manchester_I=WhitleyMkV=bb
Manchester_Ia=WhitleyMkV=bb
RAPID=Electra14=tt
SEAGLADIATOR3=SEAGLADIATOR2=ff
SW2=Swordfish1=bb
Firefly_FR1=BarracudaMkII=bb
Firefly_MkV=Fulmar=bb
MARTLETMKI=F4F3=ff
MARTLETMKII=F4F4=ff
HellcatMkI=F6F3=ff
HellcatMkIb=F6F3=ff
HellcatMkII=F6F3=ff
HellcatMkIII=F6F5=ff
SeaFury_MkX=TEMPEST5=ff
Hawk75H=DXXI_DU=ff
Hawk75A2=H_75A3=ff
FM_1=BLENHEIM1F=ff
P_40P=P_40N=ff
YB_40=B_17G=ff
PB4Y_2=B_24J100=bb
F3F_2=Hawk_3=ff
AU_1=F4U1D=ff
NW_YAK_1Light=YAK_1=ff
NW_YAK_1BEarly=YAK_1B=ff
NW_YAK_1Late=YAK_1=ff
NW_YAK_9D_44=YAK_9D=ff
NW_YAK_9T_44=YAK_9T=ga
NW_YAK_9T_45=YAK_9T=ga
NW_YAK_9U=YAK_9U=ff
CCCdt=R_5=rr
Kawa_Ki3=Ki10=rr
Ki30A=KI_27_OTSU=ff
Ki_32=KI_27_OTSU=ff
Ki36=KI_27_OTSU=ff
Ki36ns=KI_27_OTSU=ff
KI_51_I=KI_27_OTSU=ff
KI_48_I=KI_45_OTSU=ff
KI_48_II=KI_45_OTSU=ff
KI_48_IIb=KI_45_OTSU=ff
KI_48_II_KAMIKAZE=KI_45_HEI=ff
KI_109_I=KI_67_I=ff
A4N1_IJN=A2N3_IJN=ff
B2M1=Ki10=ga
B2M2=Ki10=ga
B3Y1=Ki10=ga
B4Y1=Ki10=ga
J1N1_S=KI_45_HEI=ff
J1N1_Sa=KI_45_HEI=ff
J1N1_F=KI_45_HEI=ff
Ro37bis=LetovS_328=rr
MARTIN_167F=Beaufort1Early=bb
NC_900A5=FW_190A5=ff
NC_900A8=FW_190A8=ff
AVIA_Ba122=A2N2_IJN=ff
Myrsky_II=F2A_B239=ff
AVIA_B534_Float=HE_60=ss
FW58W=HE_60=ss
BF_109W2=A6M_NLate=ss
Do_18=Do_24T=ss
Do_22K=HE_60=ss
BV138B=Do_24T=ss
BV138MS=Do_24T=ss
BV138FM=Do_24T=ss
Ro43=HE_60=ss
SM44_AM=SM_S62=ss
CantZ501=SM_S62=ss
Fiat_RS14=JU_52_3MG5E=ss
M6A1=FolgoreSea=ss
YokosukaE14Y=E13A1=ss
F4FS_3=SB2C2_USN=ss
SC_1=SB2C2_USN=ss
J2F_Duck_Super=<*>="[StationaryShips]=J2F_sea=ships.ShipJ2F$J2F_sea=1=ss"
Sea_Avenger=TBD1A=ss
UPF_F=O_47Float=ss
Martin_B_10Bfloats=A_20EXZ=ss
SPITFIRE5float=Monsoon=ss
FI_103_V1=<*>="[Static_OBJ_AVSK]=V1=buildings.House$V1=2=gg"
FI_103RIV=<*>="[Static_OBJ_AVSK]=V1=buildings.House$V1=2=gg"
BF_109CRP=BF_109G2=ff
BF_109V48=BF_109G2=ff
ME_209_II=BF_109G2=ff
BV_155=TA_152H1=ff
Ki232=DO_335A6=ff
J6K1=A7M2=ff
J8M1=ME_163B1A=ff
Pulsejet_F51D=P_51D30NA=ff
Ramjet_F51D=P_51D30NA=ff
F_82E=P_51D30NA=ff
F_82E=P_51D30NA=ff
MB5=SPITFIREF24=ff
Spiteful14=SPITFIREF24=ff
VampireGio1=MeteorF4=ff
MIG_7=MIG_3U=ff
MIG_11=MIG_3U=ff
R_4BF=R_4B=ss
Jetman=<*>="[Static_B.A.T.PERSONNEL]=USAAFPilot2=buildings.House$USAAFPilot2=1=ff"
P_40h11od=P_40E=ff
Dragonfly36a=MIG_3U=ff
Dragonfly42a=G_55_ss0=ff
Dragonfly46=HE_162C=ff
Dragonfly46N=A6M_NLate=ss
GranvilleP45=GeeBeeR2=ff
BF_109L1=BF_109K4=ff
BF_109L2=BF_109K4=ff
BF_109L2_LATE=BF_109K4=ff
BF_109L3Zerstorer=BF_109K4=ff
BF_109L4=BF_109K4=ff
BF_109L4C3=BF_109K4=ff
Ki51=B5N2=rr
Kurogane=<*>="[Stationary_Support_1]=Kurogane=vehicles.stationary.Stationary$Kurogane=2=rr"
WAGEN=<*>="[Stationary_Support_1]=VW82=vehicles.stationary.Stationary$VW82=2=rr"
JEEP=<*>="[Stationary_Support_1]=WillisMB_US=vehicles.stationary.Stationary$WillisMB_US=1=rr"
JEEP50=<*>="[Stationary_Support_1]=WillisMB_US=vehicles.stationary.Stationary$WillisMB_US=1=rr"