22 #ifndef STARTREK_AWAYMISSION_H 23 #define STARTREK_AWAYMISSION_H 34 int16 crewGetupTimers[4];
49 bool rdfStillDoDefaultAction;
55 int8 crewDirectionsAfterWalk[4];
61 bool wasRudeToPrelate;
68 bool stephenWelcomedToStudy;
69 bool prelateWelcomedCrew;
70 bool askedPrelateAboutSightings;
72 bool mccoyMentionedFlora;
79 bool knowAboutHypoDytoxin;
84 bool gaveSkullToNauian;
92 byte itemsTakenFromCase;
96 bool gavePointsForDytoxin;
97 bool lookedAtComputer;
103 ser.syncAsByte(wasRudeToPrelate);
104 ser.syncAsByte(insultedStephen);
105 ser.syncAsByte(field2d);
106 ser.syncAsByte(beatKlingons);
107 ser.syncAsByte(tookKlingonHand);
108 ser.syncAsByte(talkedToPrelate);
109 ser.syncAsByte(stephenWelcomedToStudy);
110 ser.syncAsByte(prelateWelcomedCrew);
111 ser.syncAsByte(askedPrelateAboutSightings);
112 ser.syncAsByte(field37);
113 ser.syncAsByte(mccoyMentionedFlora);
114 ser.syncAsByte(numBouldersGone);
115 ser.syncAsByte(enteredFrom);
116 ser.syncAsByte(repairedHand);
117 ser.syncAsByte(healedMiner);
118 ser.syncAsByte(curedChub);
119 ser.syncAsByte(field3e);
120 ser.syncAsByte(knowAboutHypoDytoxin);
121 ser.syncAsByte(minerDead);
122 ser.syncAsByte(field41);
123 ser.syncAsByte(foundMiner);
124 ser.syncAsByte(field45);
125 ser.syncAsByte(gaveSkullToNauian);
126 ser.syncAsByte(warpsDisabled);
127 ser.syncAsByte(boulder1Gone);
128 ser.syncAsByte(boulder2Gone);
129 ser.syncAsByte(boulder3Gone);
130 ser.syncAsByte(boulder4Gone);
131 ser.syncAsByte(doorOpened);
132 ser.syncAsByte(solvedSunPuzzle);
133 ser.syncAsByte(itemsTakenFromCase);
134 ser.syncAsByte(gotBerries);
135 ser.syncAsByte(madeHypoDytoxin);
136 ser.syncAsByte(metNauian);
137 ser.syncAsByte(gavePointsForDytoxin);
138 ser.syncAsByte(lookedAtComputer);
139 ser.syncAsByte(field56);
140 ser.syncAsByte(foundAlienRoom);
141 ser.syncAsSint16LE(missionScore);
150 bool engineerConscious;
153 byte orbitalDecayCounter;
154 bool bridgeElasiDrewPhasers;
157 bool gotTransmogrifier;
158 bool transporterRepaired;
159 bool spockExaminedTransporter;
160 bool usedTransmogrifierOnTransporter;
161 bool bridgeForceFieldDown;
164 bool brigElasiPhasersOnKill;
165 byte elasiTargetIndex;
169 byte crewmanKilled[4];
170 byte bridgeElasi1Status;
171 byte bridgeElasi2Status;
172 byte bridgeElasi3Status;
173 byte bridgeElasi4Status;
174 bool brigForceFieldDown;
177 bool elasiSurrendered;
178 byte kirkPhaserDrawn;
183 byte bridgeWinMethod;
185 bool talkedToBrigCrewman;
188 ser.syncAsSint16LE(missionScore);
189 ser.syncAsSint16LE(field2b);
190 ser.syncAsSint16LE(field2d);
191 ser.syncAsByte(engineerConscious);
192 ser.syncAsByte(field35);
193 ser.syncAsByte(gotWires);
194 ser.syncAsByte(orbitalDecayCounter);
195 ser.syncAsByte(bridgeElasiDrewPhasers);
196 ser.syncAsByte(talkedToCereth);
197 ser.syncAsByte(gotJunkPile);
198 ser.syncAsByte(gotTransmogrifier);
199 ser.syncAsByte(transporterRepaired);
200 ser.syncAsByte(spockExaminedTransporter);
201 ser.syncAsByte(usedTransmogrifierOnTransporter);
202 ser.syncAsByte(bridgeForceFieldDown);
203 ser.syncAsByte(savedPrisoners);
204 ser.syncAsByte(haveBomb);
205 ser.syncAsByte(brigElasiPhasersOnKill);
206 ser.syncAsByte(elasiTargetIndex);
207 ser.syncAsByte(guard1Status);
208 ser.syncAsByte(guard2Status);
209 ser.syncAsByte(field4e);
211 ser.syncAsByte(bridgeElasi1Status);
212 ser.syncAsByte(bridgeElasi2Status);
213 ser.syncAsByte(bridgeElasi3Status);
214 ser.syncAsByte(bridgeElasi4Status);
215 ser.syncAsByte(brigForceFieldDown);
216 ser.syncAsByte(field59);
217 ser.syncAsByte(field5b);
218 ser.syncAsByte(elasiSurrendered);
219 ser.syncAsByte(kirkPhaserDrawn);
220 ser.syncAsByte(bridgeWinMethod);
221 ser.syncAsByte(talkedToBrigCrewman);
227 bool alreadyStartedMission;
229 bool romulansUnconsciousFromLaughingGas;
230 bool releasedHumanLaughingGas;
231 bool releasedRomulanLaughingGas;
238 byte synthesizerBottleIndex;
239 byte synthesizerContents;
242 bool servicePanelOpen;
243 bool gasTankUnscrewed;
245 bool tookN2TankFromServicePanel;
248 bool insulationOnGround;
249 bool visitedRoomWithRomulans;
251 bool romulansUnconsciousFromVirus;
252 bool freedMarcusAndCheever;
254 byte spockInfectionCounter;
256 bool contactedEnterpriseBeforeCure;
257 bool contactedEnterpriseAfterCure;
258 bool spockAccessedConsole;
259 bool mccoyAccessedConsole;
260 bool gotPolyberylcarbonate;
262 bool gotPointsForOpeningGrate;
263 bool gotPointsForGassingRomulans;
265 bool gotPointsForHydratingPreax;
266 bool gotPointsForHydratingRomulans;
270 ser.syncAsByte(alreadyStartedMission);
271 ser.syncAsByte(knowAboutVirus);
272 ser.syncAsByte(romulansUnconsciousFromLaughingGas);
273 ser.syncAsByte(releasedHumanLaughingGas);
274 ser.syncAsByte(releasedRomulanLaughingGas);
275 ser.syncAsByte(chamberHasCure);
276 ser.syncAsByte(freezerOpen);
277 ser.syncAsByte(chamberHasDish);
278 ser.syncAsByte(bottleInNozzle);
279 ser.syncAsByte(cabinetOpen);
280 ser.syncAsByte(gasFeedOn);
281 ser.syncAsByte(synthesizerBottleIndex);
282 ser.syncAsByte(synthesizerContents);
283 ser.syncAsByte(canister1);
284 ser.syncAsByte(canister2);
285 ser.syncAsByte(servicePanelOpen);
286 ser.syncAsByte(gasTankUnscrewed);
287 ser.syncAsByte(wrenchTaken);
288 ser.syncAsByte(tookN2TankFromServicePanel);
289 ser.syncAsByte(field3c);
290 ser.syncAsByte(grateRemoved);
291 ser.syncAsByte(insulationOnGround);
292 ser.syncAsByte(visitedRoomWithRomulans);
293 ser.syncAsByte(romulansCured);
294 ser.syncAsByte(romulansUnconsciousFromVirus);
295 ser.syncAsByte(freedMarcusAndCheever);
296 ser.syncAsByte(preaxCured);
297 ser.syncAsByte(spockInfectionCounter);
298 ser.syncAsByte(spockCured);
299 ser.syncAsByte(contactedEnterpriseBeforeCure);
300 ser.syncAsByte(contactedEnterpriseAfterCure);
301 ser.syncAsByte(spockAccessedConsole);
302 ser.syncAsByte(mccoyAccessedConsole);
303 ser.syncAsByte(gotPolyberylcarbonate);
304 ser.syncAsByte(gotTLDH);
305 ser.syncAsByte(gotPointsForOpeningGrate);
306 ser.syncAsByte(gotPointsForGassingRomulans);
307 ser.syncAsByte(gotCure);
308 ser.syncAsByte(gotPointsForHydratingPreax);
309 ser.syncAsByte(gotPointsForHydratingRomulans);
310 ser.syncAsSint16LE(missionScore);
318 byte muddFirstRoomState;
321 bool knowAboutTorpedo;
322 bool discoveredBase3System;
323 bool translatedAlienLanguage;
324 bool databaseDestroyed;
325 bool muddInDatabaseRoom;
326 bool muddCurrentlyInsane;
327 bool computerDataErasedOrDestroyed;
328 bool muddErasedDatabase;
332 bool discoveredLenseAndDegrimerFunction;
335 bool muddUnavailable;
336 bool muddVisitedDatabaseRoom;
337 bool accessedAlienDatabase;
339 bool gotPointsForDownloadingData;
340 bool contactedEnterpriseFirstTime;
341 bool viewScreenEnabled;
342 bool lifeSupportMalfunctioning;
343 byte numTimesEnteredRoom5;
347 bool putCapsuleInMedicalMachine;
348 bool muddUnconscious;
354 byte muddInsanityState;
357 int16 lifeSupportTimer;
358 bool startedLifeSupportTimer;
359 bool enteredRoom0ForFirstTime;
360 bool gotPointsForLoadingTorpedo;
361 bool gotPointsForPressingRedButton;
362 bool gotPointsForEnablingViewscreen;
363 bool enteredRoom1ForFirstTime;
364 bool repairedLifeSupportGenerator;
368 ser.syncAsByte(muddFirstRoomState);
369 ser.syncAsByte(torpedoLoaded);
370 ser.syncAsByte(knowAboutTorpedo);
371 ser.syncAsByte(discoveredBase3System);
372 ser.syncAsByte(translatedAlienLanguage);
373 ser.syncAsByte(databaseDestroyed);
374 ser.syncAsByte(muddInDatabaseRoom);
375 ser.syncAsByte(muddCurrentlyInsane);
376 ser.syncAsByte(computerDataErasedOrDestroyed);
377 ser.syncAsByte(muddErasedDatabase);
378 ser.syncAsByte(discoveredLenseAndDegrimerFunction);
379 ser.syncAsSint16LE(torpedoStatus);
380 ser.syncAsByte(muddUnavailable);
381 ser.syncAsByte(muddVisitedDatabaseRoom);
382 ser.syncAsByte(accessedAlienDatabase);
383 ser.syncAsByte(tookRepairTool);
384 ser.syncAsByte(gotPointsForDownloadingData);
385 ser.syncAsByte(contactedEnterpriseFirstTime);
386 ser.syncAsByte(viewScreenEnabled);
387 ser.syncAsByte(lifeSupportMalfunctioning);
388 ser.syncAsByte(numTimesEnteredRoom5);
389 ser.syncAsByte(gotMemoryDisk);
390 ser.syncAsByte(gotLense);
391 ser.syncAsByte(gotDegrimer);
392 ser.syncAsByte(putCapsuleInMedicalMachine);
393 ser.syncAsByte(muddUnconscious);
394 ser.syncAsByte(muddInsanityState);
395 ser.syncAsByte(muddInhaledGas);
396 ser.syncAsSint16LE(lifeSupportTimer);
397 ser.syncAsByte(startedLifeSupportTimer);
398 ser.syncAsByte(enteredRoom0ForFirstTime);
399 ser.syncAsByte(gotPointsForLoadingTorpedo);
400 ser.syncAsByte(gotPointsForPressingRedButton);
401 ser.syncAsByte(gotPointsForEnablingViewscreen);
402 ser.syncAsByte(enteredRoom1ForFirstTime);
403 ser.syncAsByte(repairedLifeSupportGenerator);
404 ser.syncAsSint16LE(missionScore);
409 bool diedFromStalactites;
419 byte numRocksThrownAtTlaoxac;
422 bool tlaoxacTestPassed;
423 bool knockedOutTlaoxac;
424 bool waterMonsterRetreated;
425 bool showedSnakeToTlaoxac;
429 ser.syncAsByte(diedFromStalactites);
430 ser.syncAsByte(vineState);
431 ser.syncAsByte(gotRock);
432 ser.syncAsByte(gotSnake);
433 ser.syncAsByte(tookKnife);
434 ser.syncAsByte(field2e);
435 ser.syncAsByte(numRocksThrownAtTlaoxac);
436 ser.syncAsByte(gotFern);
437 ser.syncAsByte(holeBlocked);
438 ser.syncAsByte(tlaoxacTestPassed);
439 ser.syncAsByte(knockedOutTlaoxac);
440 ser.syncAsByte(waterMonsterRetreated);
441 ser.syncAsByte(showedSnakeToTlaoxac);
442 ser.syncAsSint16LE(missionScore);
456 byte doorCodeBehaviour;
460 byte globEnergyLevels[3];
461 bool enteredTrial3FirstTime;
462 byte klingonShootIndex;
469 int16 shotKlingonState;
471 bool neuralInterfaceActive;
472 int16 holeContents[3];
474 bool enteredGlobRoom;
476 bool uhuraAnalyzedCode;
483 int16 missionEndMethod;
485 bool gotPointsForGettingRod;
486 bool gotPointsForCoatingRodWithIron;
487 bool gotPointsForActivatingInterface;
488 bool gotPointsForScanningGlob;
490 bool gotPointsForBeamingOut;
493 ser.syncAsSint16LE(missionScore);
494 ser.syncAsSint16LE(field2b);
495 ser.syncAsByte(entityDefeated);
496 ser.syncAsByte(doorOpen);
497 ser.syncAsByte(scannedLock);
498 ser.syncAsByte(doorCodeBehaviour);
499 ser.syncAsByte(globSplitInTwo);
500 ser.syncAsByte(globDefeated);
502 ser.syncAsByte(enteredTrial3FirstTime);
503 ser.syncAsByte(klingonShootIndex);
504 ser.syncAsByte(shotKlingons);
505 ser.syncAsSint16LE(shotKlingonState);
506 ser.syncAsByte(neuralInterfaceActive);
507 for (
int i = 0; i < 3; i++)
508 ser.syncAsSint16LE(holeContents[i]);
509 ser.syncAsByte(enteredGlobRoom);
510 ser.syncAsByte(forceFieldDown);
511 ser.syncAsByte(uhuraAnalyzedCode);
512 ser.syncAsSint16LE(missionEndMethod);
513 ser.syncAsByte(gotPointsForGettingRod);
514 ser.syncAsByte(gotPointsForCoatingRodWithIron);
515 ser.syncAsByte(gotPointsForActivatingInterface);
516 ser.syncAsByte(gotPointsForScanningGlob);
517 ser.syncAsByte(gotPointsForBeamingOut);
525 bool doorLaserFiredOnce;
526 bool gotPointsForAccessingTerminal;
527 bool scannedKeycardLock;
546 byte scannedAndUsedComputers;
550 bool openedOuterDoor;
551 bool openedInnerDoor;
552 bool unlockedIDCardDoor;
565 bool enteredRoom0FirstTime;
566 bool scottyInformedKirkAboutVirus;
567 bool enteredRoom2FirstTime;
568 bool enteredRoom3FirstTime;
569 bool enteredRoom4FirstTime;
570 bool enteredRoom5FirstTime;
571 bool gotPointsForScanningStatue;
572 bool gotPointsForScanningRoom4;
573 bool gotPointsForScanningRoom5;
574 bool gotPointsForScanningRightComputer;
575 bool gotPointsForScanningLeftComputer;
576 bool gotPointsForUsingRightComputer;
577 bool gotPointsForUsingLeftComputer;
578 bool discoveredComputersOutOfSync;
579 bool enteredRoom1FirstTime;
580 bool playedMusicUponEnteringRoom5FirstTime;
584 ser.syncAsByte(field31);
585 ser.syncAsByte(field32);
586 ser.syncAsByte(field33);
587 ser.syncAsByte(doorLaserFiredOnce);
588 ser.syncAsByte(gotPointsForAccessingTerminal);
589 ser.syncAsByte(scannedKeycardLock);
590 ser.syncAsByte(laserSetting);
591 ser.syncAsByte(laserPattern);
592 ser.syncAsByte(gatheredClues);
593 ser.syncAsByte(scannedAndUsedComputers);
594 ser.syncAsByte(wireConnected1);
595 ser.syncAsByte(wireConnected2);
596 ser.syncAsByte(openedOuterDoor);
597 ser.syncAsByte(openedInnerDoor);
598 ser.syncAsByte(unlockedIDCardDoor);
599 ser.syncAsByte(moldState);
600 ser.syncAsByte(boxState);
601 ser.syncAsByte(enteredRoom0FirstTime);
602 ser.syncAsByte(scottyInformedKirkAboutVirus);
603 ser.syncAsByte(enteredRoom2FirstTime);
604 ser.syncAsByte(enteredRoom3FirstTime);
605 ser.syncAsByte(enteredRoom4FirstTime);
606 ser.syncAsByte(enteredRoom5FirstTime);
607 ser.syncAsByte(gotPointsForScanningStatue);
608 ser.syncAsByte(gotPointsForScanningRoom4);
609 ser.syncAsByte(gotPointsForScanningRoom5);
610 ser.syncAsByte(gotPointsForScanningRightComputer);
611 ser.syncAsByte(gotPointsForScanningLeftComputer);
612 ser.syncAsByte(gotPointsForUsingRightComputer);
613 ser.syncAsByte(gotPointsForUsingLeftComputer);
614 ser.syncAsByte(discoveredComputersOutOfSync);
615 ser.syncAsByte(enteredRoom1FirstTime);
616 ser.syncAsByte(playedMusicUponEnteringRoom5FirstTime);
617 ser.syncAsSint16LE(missionScore);
622 bool usedMedkitOnBrittany;
623 bool talkedToBrittany;
625 bool lookedAtBrittany;
626 bool enteredRoom0FirstTime;
628 bool bridgeCrewmanDead;
629 bool scannedCaptainsChair;
630 bool scannedComputerBank;
631 bool showedRepublicMapFirstTime;
632 bool impulseEnginesOn;
639 bool enterpriseLeftForDistressCall;
641 bool clearedPanelDebris;
642 bool removedPanelDebris;
644 bool loosenedDebrisWithOil;
656 byte tricordersPluggedIntoComputer;
658 byte captainsLogIndex;
659 bool elasiShieldsDown;
662 bool elasiShipDecloaked;
663 bool countdownStarted;
664 bool toldElasiToBeamOver;
665 bool scannedMainComputer;
666 bool elasiHailedRepublic;
667 bool tookRecordDeckFromAuxilaryControl;
670 int16 counterUntilElasiBoardWithShieldsDown;
674 int16 counterUntilElasiAttack;
677 int16 counterUntilElasiNagToDisableShields;
681 int16 counterUntilElasiDestroyShip;
684 int16 counterUntilElasiBoardWithInvitation;
686 bool putSupportBeamInSickbayHallway;
688 bool lookedAtTurbolift2Door;
689 bool kirkShouldSuggestReestablishingPower;
690 bool tookHypoFromSickbay;
691 bool tookDrillFromSickbay;
692 bool clearedDebrisInRoom5;
694 bool enteredRoom5FirstTime;
695 bool askedSpockAboutFire;
699 byte junctionCablesConnected;
701 bool tookCableFromTransporterRoomHallway;
702 bool tookCableFromSickbayHallway;
703 bool tookMolecularSaw;
704 bool readEngineeringJournal;
705 bool tookEngineeringJournal;
706 bool engineeringCabinetOpen;
707 bool setTransporterCoordinates;
708 bool examinedTorpedoControl;
709 bool powerPackPluggedIntoTransporter;
711 bool getPointsForHealingBrittany;
717 ser.syncAsByte(usedMedkitOnBrittany);
718 ser.syncAsByte(talkedToBrittany);
719 ser.syncAsByte(brittanyDead);
720 ser.syncAsByte(lookedAtBrittany);
721 ser.syncAsByte(enteredRoom0FirstTime);
722 ser.syncAsSint16LE(missionScore);
723 ser.syncAsByte(bridgeCrewmanDead);
724 ser.syncAsByte(scannedCaptainsChair);
725 ser.syncAsByte(scannedComputerBank);
726 ser.syncAsByte(impulseEnginesOn);
727 ser.syncAsByte(beamState);
728 ser.syncAsByte(enterpriseLeftForDistressCall);
729 ser.syncAsByte(openedPanel);
730 ser.syncAsByte(clearedPanelDebris);
731 ser.syncAsByte(removedPanelDebris);
732 ser.syncAsByte(oilInHypo);
733 ser.syncAsByte(loosenedDebrisWithOil);
734 ser.syncAsByte(poweredSystem);
735 ser.syncAsByte(tricordersPluggedIntoComputer);
736 ser.syncAsByte(captainsLogIndex);
737 ser.syncAsByte(elasiShieldsDown);
738 ser.syncAsByte(torpedoLoaded);
739 ser.syncAsByte(firedTorpedo);
740 ser.syncAsByte(elasiShipDecloaked);
741 ser.syncAsByte(countdownStarted);
742 ser.syncAsByte(toldElasiToBeamOver);
743 ser.syncAsByte(scannedMainComputer);
744 ser.syncAsByte(elasiHailedRepublic);
745 ser.syncAsByte(tookRecordDeckFromAuxilaryControl);
746 ser.syncAsSint16LE(counterUntilElasiBoardWithShieldsDown);
747 ser.syncAsSint16LE(counterUntilElasiAttack);
748 ser.syncAsSint16LE(counterUntilElasiNagToDisableShields);
749 ser.syncAsSint16LE(counterUntilElasiDestroyShip);
750 ser.syncAsSint16LE(counterUntilElasiBoardWithInvitation);
751 ser.syncAsByte(clearedDebris);
752 ser.syncAsByte(lookedAtTurbolift2Door);
753 ser.syncAsByte(kirkShouldSuggestReestablishingPower);
754 ser.syncAsByte(tookHypoFromSickbay);
755 ser.syncAsByte(tookDrillFromSickbay);
756 ser.syncAsByte(clearedDebrisInRoom5);
757 ser.syncAsByte(havePowerPack);
758 ser.syncAsByte(enteredRoom5FirstTime);
759 ser.syncAsByte(askedSpockAboutFire);
760 ser.syncAsByte(junctionCablesConnected);
761 ser.syncAsByte(tookCableFromTransporterRoomHallway);
762 ser.syncAsByte(tookCableFromSickbayHallway);
763 ser.syncAsByte(tookMolecularSaw);
764 ser.syncAsByte(readEngineeringJournal);
765 ser.syncAsByte(tookEngineeringJournal);
766 ser.syncAsByte(engineeringCabinetOpen);
767 ser.syncAsByte(setTransporterCoordinates);
768 ser.syncAsByte(examinedTorpedoControl);
769 ser.syncAsByte(powerPackPluggedIntoTransporter);
770 ser.syncAsByte(field68);
771 ser.syncAsByte(getPointsForHealingBrittany);
772 ser.syncAsByte(readAllLogs);
773 ser.syncAsByte(field6b);
774 ser.syncAsByte(field6c);
799 enum SynthesizerContent {
802 SYNTHITEM_VIRUS_SAMPLE = 2,
803 SYNTHITEM_CURE_SAMPLE = 3,
void syncBytes(byte *buf, uint32 size, Version minVersion=0, Version maxVersion=kLastVersion)
Definition: serializer.h:204
Definition: serializer.h:79
Definition: awaymission.h:27