What is the maximum number of astronauts, that WooMMU can handle? (In the sense of: How many crew members will be allowed inside a vehicle? UMmu had a rather low limit for some applications.)
HUGE EDIT: Request for comments: And could your API support something like a "custom data pointer" for an astronaut, for storing a pointer to a structure of vehicle specific data? It would make some modding a lot easier and could also be used to allow chains of add-ons adding their own data easily without your module needing to manage it.
Of course, for lazy developers functions like:
Code:
void * GetExtensionData(ASTRONAUT_HANDLE hA, DWORD extensionID) const;
void * SetExtensionData(ASTRONAUT_HANDLE hA, DWORD extensionID, void * newData);
would be more comfortable since you do a lot of the job. extensionID would just some identifier for different plugin APIs, 0x0 could be reserved for vessel specific data (I assume, your plugin will be similar to Ummu and store the crew on a per vessel base). But:
Code:
void * GetExtensionData(ASTRONAUT_HANDLE hA) const;
void * SetExtensionData(ASTRONAUT_HANDLE hA, void * newData);
would also be close enough for committee work. Then its up to the developers.
With a global call back function like:
Code:
void OnCrewEvent(CrewManagement &reference, DWORD eventID, long lParam, void * pExtData) {
...
}
//and
void RegisterCrewEvent(CREW_EVENT_FUNC * callbackfn);
....It should be possible to even install extensions to a crew simulation as Orbiter Plugins, so generic vessel add-ons could get extended without implementing the function or including a component in Multistage / genericvessel.
For example, to understand better, what I am up to: Lets imagine, somebody made a huge passenger spacecraft with a WooMMUForAll and GenericVessel and somebody else adds a Orbiter-Passenger-Plugin, that adds ticket, destination and departure information to the crew simulation of WooMMU, which can be displayed with a MFD. And later, somebody else adds a generic medical simulation plugin. Or a generic "Passenger personality plugin".
Could all be done without such extension support from your side, of course. But the required skill level for the plugin developers would be much higher and it would be much easier to create incompatibilities that would annoy the players (they would have more work finding out which add-ons work together)