This section is of interest to programmers only.
► Note: This interface is probably not too useful. But it is there and therefore it is documented here. When you want to simulate battles, you are probably better off using the PDK or the combat.log interface.
When you specify a -Xseg:ofs option, PVCR will return results about the watched battles to the program invoking PVCR. The address is specified in standard hexadecimal format (e.g. 12CF:038E), as a real-mode address
The result area must begin with the following two data items:
long Signature word Number of Results
The first field must be set to 1033FE51h; this provides a check mechanism for PVCR so that accidental overwrites of uninitialized memory locations do not occur.
This header is followed by a sequence of result structures, the number of which was given in the header. PVCR will not store more results in the area.
Each result structure has this format:
word Valid word[2] Shields word[2] Damage word[2] Fighters word[2] Torps word[2] Crew word[2] Outcome
The first field is set to 1 by PVCR if the remaining elements of the result are valid (i.e., represent the outcome of the battle). ► Note: PVCR will only store results if the battle was actually viewed. Also, PVCR will store the results as of the time when the battle was stopped. If the battle came to its natural conclusion, then the results reflect the true battle outcome. If the user terminated the battle prematurely, the results reflect the state of the combatants at the time of this termination.
The remaining members should be self-explanatory. The Outcome field is the same as in util.dat:
0 | Victor: this unit won the battle |
1 | Captured: this unit was captured (never true for planets) |
2 | Destroyed: this unit was destroyed (in case of a planet, the planet got captured because all its defense was destroyed) |
3 | No Ammo: this unit no longer has offensive capability |
Once PVCR terminates, then the Valid member of the transfer area is set to the value 51FE3310h. This prevents the transfer area from being inadvertently used in the future without prior preparation, and also indicates to the calling program that the results can be correctly interpreted (i.e., PVCR exited without errors).