By no means complete, I've started compiling a list of functions that do and do not work. In this thread I'm going to list those that do not work (or partially work but have a workaround for them). I'll add to this list from time to time.
class tShipInfoThe following functions do not work at all and always return zero (the first one does in fact work in EAW):
int32 mGetBPV( void ); (see here for the fix
http://www.dynaverse.net/forum/index.php/topic,163350382.0.html )
int32 mGetTotalBPV( void ); this function was never implemented and has no member in tshipinfo class that corresponds to it
The following functions appear to do nothing:
void mSetWeaponState( eWeaponStates weaponState );
The following functions work partially but improperly:
eClassTypes mGetClassType( void ); (see here for the fix
http://www.dynaverse.net/forum/index.php/topic,163350349.0.html )
class tTeamInfoThe following functions do not work at all and always return zero:
int32 mGetTotalCombatBPV( void );
Unlike EAW, there is no way for an OP script to get the exact BPV of a ship without using Magnum Man's API shiplist tool. Only team->mGetCombatBPV() works, however this returns the combined total BPV for all ships in one team, so if there is more than one ship, you cannot calculate individual BPV's. Fortunately the hull class can be determined (see other thread for the fix) which means that AI matching must use a combination of hull class and BPV to get a balanced matchup in scripts for OP (until the source code is released of course).