*sigh*
From the API, there are 4 mCreateShip functions. Here are their prototype, with the important bit in red.
TeamInfo.h:
void mCreateShip( const type_info& shipClass, const tShipInGame& ShipData);
void mCreateShip( const type_info& ShipClass, const char* ClassName, int32 Position, int32 MetaDatabaseID, int32 CustomID, int32 StartX, int32 StartY, int32 EndX, int32 EndY, const char* CustomName, eShipOptions ShipOptions ); // The only one used
void mCreateShip( const type_info& ShipClass, int32 TotalBPV, eClassTypes ShipType, int32 VariantPercent, int32 Position, /*int32 MetaDatabaseID,*/ int32 CustomID, int32 StartX, int32 StartY, int32 EndX, int32 EndY, const char* CustomName, eShipOptions ShipOptions, eRace Race = kNoRace );
void mCreateShip( const type_info& ShipClass, int32 TotalBPV, eClassTypes SmallestHullSize, eClassTypes LargestHullSize, int32 VariantPercent, int32 Position, int32 CustomID, int32 StartX, int32 StartY, int32 EndX, int32 EndY, const char* CustomName, eShipOptions ShipOptions );
They all use the shipClass param which allows you to define your own ShipInfo code. Within the ShipInfo file is where the problem is, so the issue is not[/red] the mCreateShip function.
But I'll play along.
- The first mCreateShip listed here, above, calls mCreateTeamShip to do the final work.
- The 2nd comes from my original example. It also calls mCreateTeamShip to do the final work
- The 3rd comes from your complaint. Within the API I see that that one calls
mCreateFleet, which in turn calls mCreateTeamFleet, which in turn calls mCreateTeamShip within its loop. - The 4th mCreateShip also calls mCreateFleet, and follows the same path as the 3rd one.
So. They all use the parameter which defines the shipClass to use. You use that to track down the bug within the source, where the Registeration of TeamState is, and you make it more restrictive to prevent the double-fighters/weapons.. .. and they all end up within the same function of the API.
I would like to point out that other functions, such as mCreateTeamFleet and mCreateCPUFleet, also do this.
Edit: Oh! NOTE:
If you're Registering the TeamState elsewhere, for whatever reason you need to do this, then you need to add the restriction that only the host should Register that State for the AI ships. The focus is the State: make sure it's not run on all machines.
I'm more interested in actual test results that use API in question rather than the theory.
This "that only the host should Register that State for the AI ships" makes a whole lot more sense rather than say all human controlled team need to register the ship states too. If so, it's not gonna work and we have the test results to prove it *jerks thumb at DH*.
Where are yours?
Come back with evidence that API calls to every one of these API routines:
li]The first mCreateShip listed here, above, calls mCreateTeamShip to do the final work.[/li]
[li]The 2nd comes from my original example. It also calls mCreateTeamShip to do the final work[/li]
[li]The 3rd comes from your complaint. Within the API I see that that one calls
mCreateFleet, which in turn calls mCreateTeamFleet, which in turn calls mCreateTeamShip within its loop.[/li]
[li]The 4th mCreateShip also calls mCreateFleet, and follows the same path as the 3rd one.[/li]
work and then we can say it's fixed. It's an empirical science not theoretical conjecture.
As for your arrogant *sighs*. Kindly put them away in the Castrin and Cleaven toybox with the rest of their toys.
Nothing has changed. Not one single solitary thing.
Yep, still after all these years, you still don't need a hair-cut. *snicker*