Oolite 1.91.0.7644-241112-7f5034b
Loading...
Searching...
No Matches
PlayerEntity.h
Go to the documentation of this file.
1/*
2
3PlayerEntity.h
4
5Entity subclass nominally representing the player's ship, but also
6implementing much of the interaction, menu system etc. Breaking it up into
7ten or so different classes is a perennial to-do item.
8
9Oolite
10Copyright (C) 2004-2013 Giles C Williams and contributors
11
12This program is free software; you can redistribute it and/or
13modify it under the terms of the GNU General Public License
14as published by the Free Software Foundation; either version 2
15of the License, or (at your option) any later version.
16
17This program is distributed in the hope that it will be useful,
18but WITHOUT ANY WARRANTY; without even the implied warranty of
19MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20GNU General Public License for more details.
21
22You should have received a copy of the GNU General Public License
23along with this program; if not, write to the Free Software
24Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
25MA 02110-1301, USA.
26
27*/
28
29#import <Foundation/Foundation.h>
30#import "WormholeEntity.h"
31#import "ShipEntity.h"
32#import "GuiDisplayGen.h"
33#import "OOTypes.h"
34#import "OOJSPropID.h"
35#import "OOCommodityMarket.h"
36
41
42#define ALLOW_CUSTOM_VIEWS_WHILE_PAUSED 1
43#define SCRIPT_TIMER_INTERVAL 10.0
44
45#ifndef OO_VARIABLE_TORUS_SPEED
46#define OO_VARIABLE_TORUS_SPEED 1
47#endif
48
49#define GUI_ROW_INIT(GUI) /*int n_rows = [(GUI) rows]*/
50#define GUI_FIRST_ROW(GROUP) ((GUI_DEFAULT_ROWS - GUI_ROW_##GROUP##OPTIONS_END_OF_LIST) / 2)
51// reposition menu
52#define GUI_ROW(GROUP,ITEM) (GUI_FIRST_ROW(GROUP) - 4 + GUI_ROW_##GROUP##OPTIONS_##ITEM)
53
54#define CUSTOM_VIEW_MAX_ZOOM_IN 1.5
55#define CUSTOM_VIEW_MAX_ZOOM_OUT 25
56
57#define ENTRY(label, value) label,
58
59typedef enum
60{
61 #include "OOGUIScreenID.tbl"
63
64#define GALACTIC_HYPERSPACE_ENTRY(label, value) GALACTIC_HYPERSPACE_##label = value,
65
66typedef enum
67{
68 #include "OOGalacticHyperspaceBehaviour.tbl"
69
70 GALACTIC_HYPERSPACE_MAX = GALACTIC_HYPERSPACE_BEHAVIOUR_FIXED_COORDINATES
72
73#undef ENTRY
74#undef GALACTIC_HYPERSPACE_ENTRY
75
76
77enum
78{
79 // Values used for unknown strings.
80 kOOGUIScreenIDDefault = GUI_SCREEN_MAIN,
81 kOOGalacticHyperspaceBehaviourDefault = GALACTIC_HYPERSPACE_BEHAVIOUR_UNKNOWN
82};
83
89
96
97
98// When fully zoomed in, chart shows area of galaxy that's 64x64 galaxy units.
99#define CHART_WIDTH_AT_MAX_ZOOM 64.0
100#define CHART_HEIGHT_AT_MAX_ZOOM 64.0
101// Galaxy width / width of chart area at max zoom
102#define CHART_MAX_ZOOM (256.0/CHART_WIDTH_AT_MAX_ZOOM)
103//start scrolling when cursor is this number of units away from centre
104#define CHART_SCROLL_AT_X 25.0
105#define CHART_SCROLL_AT_Y 31.0
106#define CHART_CLIP_BORDER 10.0
107#define CHART_SCREEN_VERTICAL_CENTRE (10*MAIN_GUI_ROW_HEIGHT)
108#define CHART_SCREEN_VERTICAL_CENTRE_COMPACT (7*MAIN_GUI_ROW_HEIGHT)
109#define CHART_ZOOM_SPEED_FACTOR 1.05
110
111#define CHART_ZOOM_SHOW_LABELS 2.0
112
113// OO_RESOLUTION_OPTION: true if full screen resolution can be changed.
114#if OOLITE_MAC_OS_X && OOLITE_64_BIT
115#define OO_RESOLUTION_OPTION 0
116#else
117#define OO_RESOLUTION_OPTION 1
118#endif
119
120// dictionary keys - used in the custom key config for oxp equipment
121#define CUSTOMEQUIP_EQUIPKEY @"equipmentKey"
122#define CUSTOMEQUIP_EQUIPNAME @"equipmentName"
123#define CUSTOMEQUIP_KEYACTIVATE @"keyActivate"
124#define CUSTOMEQUIP_KEYMODE @"keyMode"
125#define CUSTOMEQUIP_BUTTONACTIVATE @"buttonActivate"
126#define CUSTOMEQUIP_BUTTONMODE @"buttonMode"
127#define KEYCONFIG_CUSTOMEQUIP @"CustomEquipActivation" // NSUserDefaults
128
129enum
130{
138#if OOLITE_SDL
139 GUI_ROW_OPTIONS_SPACER3,
140 GUI_ROW_OPTIONS_QUIT,
141#endif
143
147
171
172#if GUI_FIRST_ROW() < 0
173# error Too many items in OPTIONS list!
174#endif
175
176enum
177{
182#if OOLITE_SPEECH_SYNTH
184#if !OOLITE_MAC_OS_X
185 // FIXME: should have voice option for OS X
186 GUI_ROW_GAMEOPTIONS_SPEECH_LANGUAGE,
187 GUI_ROW_GAMEOPTIONS_SPEECH_GENDER,
188#endif
189#endif
191#if OO_RESOLUTION_OPTION
194#endif
198#if !NEW_PLANETS
200#endif
202#if OOLITE_SDL
203 GUI_ROW_GAMEOPTIONS_GAMMA,
204#endif
212
215#if GUI_FIRST_ROW() < 0
216# error Too many items in GAMEOPTIONS list!
217#endif
218
219enum
220{
224
225
234
235
236enum
237{
244 ALERT_FLAG_HOSTILES = 0x200
246typedef uint16_t OOAlertFlags;
247
248
256
257
266
267
280
281
293
294
295#define ECM_ENERGY_DRAIN_FACTOR 20.0f
296#define ECM_DURATION 2.5f
297
298#define ROLL_DAMPING_FACTOR 1.0f
299#define PITCH_DAMPING_FACTOR 1.0f
300#define YAW_DAMPING_FACTOR 1.0f
301
302#define PLAYER_MAX_WEAPON_TEMP 256.0f
303#ifdef OO_DUMP_PLANETINFO
304// debugging
305#define PLAYER_MAX_FUEL 7000
306#else
307#define PLAYER_MAX_FUEL 70
308#endif
309#define PLAYER_MAX_MISSILES 16
310#define PLAYER_STARTING_MAX_MISSILES 4
311#define PLAYER_STARTING_MISSILES 3
312#define PLAYER_DIAL_MAX_ALTITUDE 40000.0
313#define PLAYER_SUPER_ALTITUDE2 10000000000.0
314
315#define PLAYER_MAX_TRUMBLES 24
316
317#define PLAYER_TARGET_MEMORY_SIZE 16
318
319#if OO_VARIABLE_TORUS_SPEED
320#define HYPERSPEED_FACTOR [PLAYER hyperspeedFactor]
321#define MIN_HYPERSPEED_FACTOR 32.0
322#define MAX_HYPERSPEED_FACTOR 1024.0
323#else
324#define HYPERSPEED_FACTOR 32.0
325#endif
326
327#define PLAYER_SHIP_DESC @"cobra3-player"
328
329#define ESCAPE_SEQUENCE_TIME 10.0
330
331#define FORWARD_FACING_STRING DESC(@"forward-facing-string")
332#define AFT_FACING_STRING DESC(@"aft-facing-string")
333#define PORT_FACING_STRING DESC(@"port-facing-string")
334#define STARBOARD_FACING_STRING DESC(@"starboard-facing-string")
335
336#define KEY_REPEAT_INTERVAL 0.20
337
338#define PLAYER_SHIP_CLOCK_START (2084004 * 86400.0)
339// adding or removing a player ship subentity increases or decreases the ship's trade-in factor respectively by this amount
340#define PLAYER_SHIP_SUBENTITY_TRADE_IN_VALUE 3
341
342#define CONTRACTS_GOOD_KEY @"contracts_fulfilled"
343#define CONTRACTS_BAD_KEY @"contracts_expired"
344#define CONTRACTS_UNKNOWN_KEY @"contracts_unknown"
345#define PASSAGE_GOOD_KEY @"passage_fulfilled"
346#define PASSAGE_BAD_KEY @"passage_expired"
347#define PASSAGE_UNKNOWN_KEY @"passage_unknown"
348#define PARCEL_GOOD_KEY @"parcels_fulfilled"
349#define PARCEL_BAD_KEY @"parcels_expired"
350#define PARCEL_UNKNOWN_KEY @"parcels_unknown"
351
352
353#define SCANNER_ZOOM_RATE_UP 2.0
354#define SCANNER_ZOOM_RATE_DOWN -8.0
355#define SCANNER_ECM_FUZZINESS 1.25
356
357#define PLAYER_INTERNAL_DAMAGE_FACTOR 31
358
359#define PLAYER_DOCKING_AI_NAME @"oolite-player-AI.plist"
360
361#define MANIFEST_SCREEN_ROW_BACK 1
362#define MANIFEST_SCREEN_ROW_NEXT ([[PLAYER hud] isHidden]?27:20)
363
364#define MISSION_DEST_LEGACY @"__oolite_legacy_destinations"
365
366
368{
369@private
374
376
379
380 NSDictionary *worldScripts;
382 NSMutableDictionary *commodityScripts;
383 NSMutableDictionary *mission_variables;
384 NSMutableDictionary *localVariables;
385 NSString *_missionTitle;
386 NSInteger /*OOGUIRow*/ missionTextRow;
387 NSString *missionChoice;
393
394 NSString *specialCargo;
395
396 NSMutableArray *commLog;
397
398 NSMutableArray *eqScripts;
399
405
407
408 NSMutableDictionary *reputation;
409
411 NSMutableArray *passengers;
412 NSMutableDictionary *passenger_record;
413
414 NSMutableArray *parcels;
415 NSMutableDictionary *parcel_record;
416
417 NSMutableArray *contracts;
418 NSMutableDictionary *contract_record;
419
420 NSMutableDictionary *shipyard_record;
421
422 NSMutableDictionary *missionDestinations;
423 NSMutableArray *roleWeights;
424 // temporary flags for role actions taking multiple steps, cleared on jump
425 NSMutableDictionary *roleWeightFlags;
426 NSMutableArray *roleSystemList; // list of recently visited sysids
427
431 NSString *lastTextKey;
432
435
437
441
443
445
447
448 // For OO-GUI based save screen
450 NSMutableArray *cdrDetailArray;
453// ...end save screen
454
455 NSInteger marketOffset;
459
461
462/* Used by the DOCKING_CLEARANCE code to implement docking at non-main
463 * stations. Could possibly overload use of 'dockedStation' instead
464 * but that needs futher investigation to ensure it doesn't break anything. */
466
468 NSMutableDictionary *multiFunctionDisplayText;
470 NSUInteger activeMFD;
471 NSMutableDictionary *customDialSettings;
472
474 GLfloat launchRoll;
475
479
480 OOWeaponFacing chosen_weapon_facing; // for purchasing weapons
481
484
491 NSUInteger activeMissile;
492 NSUInteger primedEquipment;
495
497
502 // where we want the chart centre to be - used for smooth transitions
505 // Chart zoom is 1.0 when fully zoomed in and increases as we zoom out. The reason I've done it that way round
506 // is because we might want to implement bigger galaxies one day, and thus may need to zoom out indefinitely.
513
514 NSString *_jumpCause;
515
516 // player commander data
517 NSString *_commanderName;
518 NSString *_lastsaveName;
520
523
525
526 ShipEntity *missile_entity[PLAYER_MAX_MISSILES]; // holds the actual missile entities or equivalents
527 OOUniversalID _dockTarget; // used by the escape pod code
528
529 int legalStatus; // legalStatus both is and isn't an OOCreditsQuantity, because of quantum.
531 unsigned ship_kills;
532
535
537
538#if OO_VARIABLE_TORUS_SPEED
540#endif
541
542 // keys!
543 NSDictionary *keyconfig2_settings;
544 NSDictionary *keyCodeLookups;
545
552
553 NSArray *n_key_view_forward; // && undock
554 NSArray *n_key_view_aft; // && options menu
555 NSArray *n_key_view_port; // && equipment screen
556 NSArray *n_key_view_starboard; // && interfaces screen
557
566
574
578
582 NSArray *n_key_ecm;
583
590
595
598
600
604
607
610
613
625
630
637
641
649
652
666
669
674
678
679#if OO_FOV_INFLIGHT_CONTROL_ENABLED
680 NSArray *n_key_inc_field_of_view;
681 NSArray *n_key_dec_field_of_view;
682#endif
683
684#ifndef NDEBUG
693#endif
694
695 // dict to hold custom key config for OXP equipment with activate/mode functions
696 NSMutableArray *customEquipActivation;
697 NSMutableArray *customActivatePressed;
698 NSMutableArray *customModePressed;
699
700 // dict to hold extra keys for missions screen.
701 NSDictionary *extraMissionKeys;
702
703 NSMutableDictionary *extraGuiScreenKeys;
704
705 // save-file
706 NSString *save_path;
707 NSString *scenarioKey;
708
709 // position of viewports
712
713 // trumbles
714 NSUInteger trumbleCount;
715 OOTrumble *trumble[PLAYER_MAX_TRUMBLES];
717
718 // smart zoom
720
721 // target memory
722 // TODO: this should use weakrefs
723 NSMutableArray *target_memory;
725
726 // custom view points
731
732
733 // docking reports
734 NSMutableString *dockingReport;
735
736 // Woo, flags.
737 unsigned suppressTargetLost: 1, // smart target lst reports
738 scoopsActive: 1, // smart fuelscoops
739
740 scoopOverride: 1, //scripted to just be on, ignoring normal rules
745
748
752
754
756
758
760
762
765
767
768 keyboardRollOverride: 1, // Handle keyboard roll...
769 keyboardPitchOverride: 1, // ...and pitch override separately - (fix for BUG #17490)
772
774
777
779#if OOLITE_ESPEAK
780 unsigned int voice_no;
781 BOOL voice_gender_m;
782#endif
784
785
786 // For PlayerEntity (StickMapper)
788 NSArray *stickFunctions;
789 NSArray *keyFunctions;
790 NSArray *kbdLayouts;
791 NSString *keyShiftText;
792 NSString *keyMod1Text;
793 NSString *keyMod2Text;
794
797
799
800 NSArray *_customViews;
802
804
805 NSMutableArray *scannedWormholes;
807
808 ShipEntity *demoShip; // Used while docked to maintain demo ship rotation.
809 NSArray *lastShot; // used to correctly position laser shots on first frame of firing
810
812
815#if OO_FOV_INFLIGHT_CONTROL_ENABLED
816 double fov_delta;
817#endif
818}
819
820+ (PlayerEntity *) sharedPlayer;
821- (void) deferredInit;
822
823- (BOOL) setUpAndConfirmOK:(BOOL)stopOnError;
824- (BOOL) setUpAndConfirmOK:(BOOL)stopOnError saveGame:(BOOL)loadingGame;
825- (void) completeSetUp;
826- (void) completeSetUpAndSetTarget:(BOOL)setTarget;
827- (void) startUpComplete;
828
829- (NSString *) commanderName;
830- (void) setCommanderName:(NSString *)value;
831- (NSString *) lastsaveName;
832- (void) setLastsaveName:(NSString *)value;
833
834- (BOOL) isDocked;
835
836- (void) warnAboutHostiles;
837
838- (void) unloadCargoPods;
839- (void) loadCargoPods;
840- (void) unloadAllCargoPodsForType:(OOCommodityType)type toManifest:(OOCommodityMarket *) manifest;
841- (void) unloadCargoPodsForType:(OOCommodityType)type amount:(OOCargoQuantity) quantity;
842- (void) loadCargoPodsForType:(OOCommodityType)type fromManifest:(OOCommodityMarket *) manifest;
843- (void) loadCargoPodsForType:(OOCommodityType)type amount:(OOCargoQuantity) quantity;
844- (OOCommodityMarket *) shipCommodityData;
845
846- (OOCreditsQuantity) deciCredits;
847
848- (int) random_factor;
849- (void) setRandom_factor:(int)rf;
850- (OOGalaxyID) galaxyNumber;
851- (NSPoint) galaxy_coordinates;
852- (void) setGalaxyCoordinates:(NSPoint)newPosition;
853- (void) setCustomChartCentre:(NSPoint)coords;
854- (NSPoint) cursor_coordinates;
855- (NSPoint) chart_centre_coordinates;
856- (NSPoint) custom_chart_centre_coordinates;
857- (OOScalar) chart_zoom;
858- (OOScalar) custom_chart_zoom;
859- (void) setCustomChartZoom:(OOScalar)zoom;
860- (NSPoint) adjusted_chart_centre;
861- (OORouteType) ANAMode;
862
863- (NSString *) jumpCause;
864- (void) setJumpCause:(NSString *)value;
865
866- (OOSystemID) systemID;
867- (void) setSystemID:(OOSystemID) sid;
868- (OOSystemID) targetSystemID;
869- (void) setTargetSystemID:(OOSystemID) sid;
870- (OOSystemID) previousSystemID;
871- (void) setPreviousSystemID:(OOSystemID) sid;
872- (OOSystemID) nextHopTargetSystemID;
873- (OOSystemID) infoSystemID;
874- (void) setInfoSystemID: (OOSystemID) sid moveChart:(BOOL) moveChart;
875- (void) nextInfoSystem;
876- (void) previousInfoSystem;
877- (void) homeInfoSystem;
878- (void) targetInfoSystem;
879- (BOOL) infoSystemOnRoute;
880
881
882- (NSDictionary *) commanderDataDictionary;
883- (BOOL)setCommanderDataFromDictionary:(NSDictionary *) dict;
884
885- (void) addEquipmentWithScriptToCustomKeyArray:(NSString *)equipmentKey;
886- (void) validateCustomEquipActivationArray;
887
888- (void) doBookkeeping:(double) delta_t;
889- (BOOL) isValidTarget:(Entity*)target;
890
891- (void) setMassLockable:(BOOL)newValue;
892- (BOOL) massLockable;
893- (BOOL) massLocked;
894- (BOOL) atHyperspeed;
895
896- (float) occlusionLevel;
897- (void) setOcclusionLevel:(float)level;
898
899- (void) setDockedAtMainStation;
900- (StationEntity *) dockedStation;
901// Dumb setter; callers are responsible for sanity.
902- (void) setDockedStation:(StationEntity *)station;
903
904- (void) performDockingRequest:(StationEntity *)stationForDocking;
905- (void) requestDockingClearance:(StationEntity *)stationForDocking;
906- (void) cancelDockingRequest:(StationEntity *)stationForDocking;
907- (BOOL) engageAutopilotToStation:(StationEntity *)stationForDocking;
908- (void) disengageAutopilot;
909
910- (void) resetAutopilotAI;
911
912- (void) setTargetDockStationTo:(StationEntity *) value;
913- (StationEntity *) getTargetDockStation;
914
915- (HeadUpDisplay *) hud;
916- (BOOL) switchHudTo:(NSString *)hudFileName;
917- (void) resetHud;
918
919- (float) dialCustomFloat:(NSString *)dialKey;
920- (NSString *) dialCustomString:(NSString *)dialKey;
921- (OOColor *) dialCustomColor:(NSString *)dialKey;
922- (void) setDialCustom:(id)value forKey:(NSString *)key;
923
924
925- (NSArray *) multiFunctionDisplayList;
926- (NSString *) multiFunctionText:(NSUInteger) index;
927- (void) setMultiFunctionText:(NSString *)text forKey:(NSString *)key;
928- (BOOL) setMultiFunctionDisplay:(NSUInteger) index toKey:(NSString *)key;
929- (void) cycleNextMultiFunctionDisplay:(NSUInteger) index;
930- (void) cyclePreviousMultiFunctionDisplay:(NSUInteger) index;
931- (void) selectNextMultiFunctionDisplay;
932- (void) selectPreviousMultiFunctionDisplay;
933- (NSUInteger) activeMFD;
934
935- (void) setShowDemoShips:(BOOL) value;
936- (BOOL) showDemoShips;
937
938- (GLfloat) forwardShieldLevel;
939- (GLfloat) aftShieldLevel;
940- (GLfloat) baseMass;
941
942- (void) setForwardShieldLevel:(GLfloat)level;
943- (void) setAftShieldLevel:(GLfloat)level;
944
945- (float) forwardShieldRechargeRate;
946- (float) aftShieldRechargeRate;
947
948- (void) setMaxForwardShieldLevel:(float)new;
949- (void) setMaxAftShieldLevel:(float)new;
950- (void) setForwardShieldRechargeRate:(float)new;
951- (void) setAftShieldRechargeRate:(float)new;
952
953// return keyconfig.plist settings for scripting
954- (NSDictionary *) keyConfig;
955- (BOOL) isMouseControlOn;
956
957- (GLfloat) dialRoll;
958- (GLfloat) dialPitch;
959- (GLfloat) dialYaw;
960- (GLfloat) dialSpeed;
961- (GLfloat) dialHyperSpeed;
962
963- (void) currentWeaponStats;
964
965- (GLfloat) dialForwardShield;
966- (GLfloat) dialAftShield;
967
968- (GLfloat) dialEnergy;
969- (GLfloat) dialMaxEnergy;
970
971- (GLfloat) dialFuel;
972- (GLfloat) dialHyperRange;
973
974- (GLfloat) dialAltitude;
975
976- (unsigned) countMissiles;
977- (OOMissileStatus) dialMissileStatus;
978
979- (OOFuelScoopStatus) dialFuelScoopStatus;
980
981- (float) fuelLeakRate;
982- (void) setFuelLeakRate:(float)value;
983
984#if OO_VARIABLE_TORUS_SPEED
985- (GLfloat) hyperspeedFactor;
986#endif
987- (BOOL) injectorsEngaged;
988- (BOOL) hyperspeedEngaged;
989
990- (NSMutableArray *) customEquipmentActivation;
991
992
993- (double) clockTime; // Note that this is not an OOTimeAbsolute
994- (double) clockTimeAdjusted; // Note that this is not an OOTimeAbsolute
995- (BOOL) clockAdjusting;
996- (void) addToAdjustTime:(double) seconds ;
997
998- (double) escapePodRescueTime;
999- (void) setEscapePodRescueTime:(double) seconds;
1000
1001- (NSString *) dial_clock;
1002- (NSString *) dial_clock_adjusted;
1003- (NSString *) dial_fpsinfo;
1004- (NSString *) dial_objinfo;
1005
1006- (NSMutableArray *) commLog;
1007
1008- (Entity *) compassTarget;
1009- (void) setCompassTarget:(Entity *)value;
1010- (void) validateCompassTarget;
1011
1012- (NSString *) compassTargetLabel;
1013
1014- (OOCompassMode) compassMode;
1015- (void) setCompassMode:(OOCompassMode)value;
1016- (void) setPrevCompassMode;
1017- (void) setNextCompassMode;
1018
1019- (NSUInteger) activeMissile;
1020- (void) setActiveMissile:(NSUInteger)value;
1021- (NSUInteger) dialMaxMissiles;
1022- (BOOL) dialIdentEngaged;
1023- (void) setDialIdentEngaged:(BOOL)newValue;
1024- (NSString *) specialCargo;
1025- (NSString *) dialTargetName;
1026- (ShipEntity *) missileForPylon:(NSUInteger)value;
1027- (void) safeAllMissiles;
1028- (void) selectNextMissile;
1029- (void) tidyMissilePylons;
1030- (BOOL) removeFromPylon:(NSUInteger) pylon;
1031- (BOOL) assignToActivePylon:(NSString *)identifierKey;
1032
1033- (void) clearAlertFlags;
1034- (int) alertFlags;
1035- (void) setAlertFlag:(int)flag to:(BOOL)value;
1036- (OOAlertCondition) alertCondition;
1037- (OOPlayerFleeingStatus) fleeingStatus;
1038
1039- (BOOL) mountMissile:(ShipEntity *)missile;
1040- (BOOL) mountMissileWithRole:(NSString *)role;
1041
1042- (OOEnergyUnitType) installedEnergyUnitType;
1043- (OOEnergyUnitType) energyUnitType;
1044
1045- (ShipEntity *) launchMine:(ShipEntity *)mine;
1046
1047- (BOOL) activateCloakingDevice;
1048- (void) deactivateCloakingDevice;
1049
1050- (double) scannerFuzziness;
1051
1052- (BOOL) weaponsOnline;
1053- (void) setWeaponsOnline:(BOOL)newValue;
1054
1055- (BOOL) fireMainWeapon;
1056
1057- (OOWeaponType) weaponForFacing:(OOWeaponFacing)facing;
1058- (OOWeaponType) currentWeapon;
1059- (NSArray *) currentLaserOffset;
1060
1061- (void) rotateCargo;
1062
1063- (BOOL) hasSufficientFuelForJump;
1064
1065- (BOOL) witchJumpChecklist:(BOOL)isGalacticJump;
1066- (void) enterGalacticWitchspace;
1067- (void) setJumpType:(BOOL)isGalacticJump;
1068
1069- (BOOL) takeInternalDamage;
1070
1071- (BOOL) endScenario:(NSString *)key;
1072
1073- (NSMutableArray *) roleWeights;
1074- (void) addRoleForAggression:(ShipEntity *)victim;
1075- (void) addRoleForMining;
1076- (void) addRoleToPlayer:(NSString *)role;
1077- (void) addRoleToPlayer:(NSString *)role inSlot:(NSUInteger)slot;
1078- (void) clearRoleFromPlayer:(BOOL)includingLongRange;
1079- (void) clearRolesFromPlayer:(float)chance;
1080- (NSUInteger) maxPlayerRoles;
1081- (void) updateSystemMemory;
1082
1083- (void) loseTargetStatus;
1084
1085- (void) docked;
1086
1087- (void) setGuiToStatusScreen;
1088- (NSArray *) equipmentList; // Each entry is an array with a string followed by a boolean indicating availability (NO = damaged), then a color (or nil for default color).
1089- (BOOL) setPrimedEquipment:(NSString *)eqKey showMessage:(BOOL)showMsg;
1090- (NSString *) primedEquipmentName:(NSInteger)offset;
1091- (NSString *) currentPrimedEquipment;
1092- (NSUInteger) primedEquipmentCount;
1093- (void) activatePrimableEquipment:(NSUInteger)index withMode:(OOPrimedEquipmentMode)mode;
1094- (NSString *) fastEquipmentA;
1095- (NSString *) fastEquipmentB;
1096- (void) setFastEquipmentA:(NSString *)eqKey;
1097- (void) setFastEquipmentB:(NSString *)eqKey;
1098
1099- (OOCreditsQuantity) adjustPriceByScriptForEqKey:(NSString *)eqKey withCurrent:(OOCreditsQuantity)price;
1100
1101- (NSArray *) cargoList;
1102//- (NSArray *) cargoListForScripting; // now in ShipEntity
1103- (unsigned) legalStatusOfCargoList;
1104
1105- (void) setGuiToSystemDataScreen;
1106- (void) setGuiToSystemDataScreenRefreshBackground: (BOOL) refreshBackground;
1107- (NSDictionary *) markedDestinations;
1108- (void) setGuiToLongRangeChartScreen;
1109- (void) setGuiToShortRangeChartScreen;
1110- (void) setGuiToChartScreenFrom: (OOGUIScreenID) oldScreen;
1111- (void) setGuiToLoadSaveScreen;
1112- (void) setGuiToGameOptionsScreen;
1113- (OOWeaponFacingSet) availableFacings;
1114- (void) setGuiToEquipShipScreen:(int)skip selectingFacingFor:(NSString *)eqKeyForSelectFacing;
1115- (void) setGuiToEquipShipScreen:(int)skip;
1116
1117- (void) setGuiToInterfacesScreen:(int)skip;
1118- (void) showInformationForSelectedInterface;
1119- (void) activateSelectedInterface;
1120
1121- (void) highlightEquipShipScreenKey:(NSString *)key;
1122- (void) showInformationForSelectedUpgrade;
1123- (void) showInformationForSelectedUpgradeWithFormatString:(NSString *)extraString;
1124- (BOOL) setWeaponMount:(OOWeaponFacing)chosen_weapon_facing toWeapon:(NSString *)eqKey;
1125- (BOOL) setWeaponMount:(OOWeaponFacing)facing toWeapon:(NSString *)eqKey inContext:(NSString *) context;
1126
1127- (BOOL) changePassengerBerths:(int) addRemove;
1128- (OOCargoQuantity) cargoQuantityForType:(OOCommodityType)type;
1129- (OOCargoQuantity) setCargoQuantityForType:(OOCommodityType)type amount:(OOCargoQuantity)amount;
1130- (void) calculateCurrentCargo;
1131- (void) setGuiToMarketScreen;
1132- (void) setGuiToMarketInfoScreen;
1133- (NSArray *) applyMarketFilter:(NSArray *)goods onMarket:(OOCommodityMarket *)market;
1134- (NSArray *) applyMarketSorter:(NSArray *)goods onMarket:(OOCommodityMarket *)market;
1135- (OOCommodityMarket *) localMarket;
1136
1137
1138- (void) setupStartScreenGui;
1139- (void) setGuiToIntroFirstGo:(BOOL)justCobra;
1140- (void) setGuiToOXZManager;
1141
1142- (void) noteGUIWillChangeTo:(OOGUIScreenID)toScreen;
1143- (void) noteGUIDidChangeFrom:(OOGUIScreenID)fromScreen to:(OOGUIScreenID)toScreen refresh: (BOOL) refresh;
1144- (void) noteGUIDidChangeFrom:(OOGUIScreenID)fromScreen to:(OOGUIScreenID)toScreen;
1145- (void) noteViewDidChangeFrom:(OOViewID)fromView toView:(OOViewID)toView;
1146
1147- (OOGUIScreenID) guiScreen;
1148
1149- (void) buySelectedItem;
1150
1151- (BOOL) tryBuyingCommodity:(OOCommodityType)type all:(BOOL)all;
1152- (BOOL) trySellingCommodity:(OOCommodityType)type all:(BOOL)all;
1153
1154- (OOSpeechSettings) isSpeechOn;
1155
1156- (void) addEquipmentFromCollection:(id)equipment; // equipment may be an array, a set, a dictionary whose values are all YES, or a string.
1157
1158- (void) getFined;
1159- (void) adjustTradeInFactorBy:(int)value;
1160- (int) tradeInFactor;
1161- (double) renovationCosts;
1162- (double) renovationFactor;
1163
1164
1165- (void) setDefaultViewOffsets;
1166- (void) setDefaultCustomViews;
1167- (Vector) weaponViewOffset;
1168
1169- (void) setUpTrumbles;
1170- (void) addTrumble:(OOTrumble *)papaTrumble;
1171- (void) removeTrumble:(OOTrumble *)deadTrumble;
1172- (OOTrumble **) trumbleArray;
1173- (NSUInteger) trumbleCount;
1174// loading and saving trumbleCount
1175- (id) trumbleValue;
1176- (void) setTrumbleValueFrom:(NSObject *)trumbleValue;
1177
1178- (float) trumbleAppetiteAccumulator;
1179- (void) setTrumbleAppetiteAccumulator:(float)value;
1180
1181- (void) mungChecksumWithNSString:(NSString *)str;
1182
1183- (NSString *)screenModeStringForWidth:(unsigned)inWidth height:(unsigned)inHeight refreshRate:(float)inRate;
1184
1185- (void) suppressTargetLost;
1186
1187- (void) setScoopsActive;
1188
1189- (void) clearTargetMemory;
1190- (NSMutableArray *) targetMemory;
1191- (BOOL) moveTargetMemoryBy:(NSInteger)delta;
1192
1193- (void) printIdentLockedOnForMissile:(BOOL)missile;
1194
1195- (void) applyYaw:(GLfloat) yaw;
1196
1197/* GILES custom viewpoints */
1198
1199// custom view points
1200- (Quaternion)customViewQuaternion;
1201- (void)setCustomViewQuaternion:(Quaternion)q1;
1202- (OOMatrix)customViewMatrix;
1203- (Vector)customViewOffset;
1204- (void)setCustomViewOffset:(Vector)offset;
1205- (Vector)customViewRotationCenter;
1206- (void)setCustomViewRotationCenter:(Vector)center;
1207- (void)customViewZoomOut:(OOScalar) rate;
1208- (void)customViewZoomIn: (OOScalar) rate;
1209- (void)customViewRotateLeft:(OOScalar) angle;
1210- (void)customViewRotateRight:(OOScalar) angle;
1211- (void)customViewRotateUp:(OOScalar) angle;
1212- (void)customViewRotateDown:(OOScalar) angle;
1213- (void)customViewRollLeft:(OOScalar) angle;
1214- (void)customViewRollRight:(OOScalar) angle;
1215- (void)customViewPanUp:(OOScalar) angle;
1216- (void)customViewPanDown:(OOScalar) angle;
1217- (void)customViewPanLeft:(OOScalar) angle;
1218- (void)customViewPanRight:(OOScalar) angle;
1219- (Vector)customViewForwardVector;
1220- (Vector)customViewUpVector;
1221- (Vector)customViewRightVector;
1222- (NSString *)customViewDescription;
1223- (void)resetCustomView;
1224- (void)setCustomViewData;
1225- (void)setCustomViewDataFromDictionary:(NSDictionary*) viewDict withScaling:(BOOL)withScaling;
1226- (HPVector) viewpointPosition;
1227- (HPVector) breakPatternPosition;
1228- (Vector) viewpointOffset;
1229- (Vector) viewpointOffsetAft;
1230- (Vector) viewpointOffsetForward;
1231- (Vector) viewpointOffsetPort;
1232- (Vector) viewpointOffsetStarboard;
1233
1234
1235- (NSDictionary *) missionOverlayDescriptor;
1236- (NSDictionary *) missionOverlayDescriptorOrDefault;
1237- (void) setMissionOverlayDescriptor:(NSDictionary *)descriptor;
1238
1239- (NSDictionary *) missionBackgroundDescriptor;
1240- (NSDictionary *) missionBackgroundDescriptorOrDefault;
1241- (void) setMissionBackgroundDescriptor:(NSDictionary *)descriptor;
1242- (OOGUIBackgroundSpecial) missionBackgroundSpecial;
1243- (void) setMissionBackgroundSpecial:(NSString *)special;
1244- (void) setMissionExitScreen:(OOGUIScreenID)screen;
1245- (OOGUIScreenID) missionExitScreen;
1246- (void) clearExtraMissionKeys;
1247- (void) setExtraMissionKeys:(NSDictionary *)keys;
1248
1249- (void) clearExtraGuiScreenKeys:(OOGUIScreenID)gui key:(NSString *)key;
1250- (BOOL) setExtraGuiScreenKeys:(OOGUIScreenID)gui definition:(OOJSGuiScreenKeyDefinition *)definition;
1251
1252
1253// Nasty hack to keep background textures around while on equip screens.
1254- (NSDictionary *) equipScreenBackgroundDescriptor;
1255- (void) setEquipScreenBackgroundDescriptor:(NSDictionary *)descriptor;
1256
1257- (BOOL) scriptsLoaded;
1258- (NSArray *) worldScriptNames;
1259- (NSDictionary *) worldScriptsByName;
1260
1261- (OOScript *) commodityScriptNamed:(NSString *)script;
1262
1263// *** World script events.
1264// In general, script events should be sent through doScriptEvent:..., which
1265// will forward to the world scripts.
1266- (BOOL) doWorldEventUntilMissionScreen:(jsid)message;
1267- (void) doWorldScriptEvent:(jsid)message inContext:(JSContext *)context withArguments:(jsval *)argv count:(uintN)argc timeLimit:(OOTimeDelta)limit;
1268
1269- (BOOL)showInfoFlag;
1270
1271- (void) setGalacticHyperspaceBehaviour:(OOGalacticHyperspaceBehaviour) galacticHyperspaceBehaviour;
1272- (OOGalacticHyperspaceBehaviour) galacticHyperspaceBehaviour;
1273- (void) setGalacticHyperspaceFixedCoords:(NSPoint)point;
1274- (void) setGalacticHyperspaceFixedCoordsX:(unsigned char)x y:(unsigned char)y;
1275- (NSPoint) galacticHyperspaceFixedCoords;
1276- (void) setWitchspaceCountdown:(int)spin_time;
1277
1278- (OOLongRangeChartMode) longRangeChartMode;
1279- (void) setLongRangeChartMode:(OOLongRangeChartMode) mode;
1280
1281- (BOOL) scoopOverride;
1282- (void) setScoopOverride:(BOOL)newValue;
1283- (void) setDockTarget:(ShipEntity *)entity;
1284
1285- (BOOL) clearedToDock;
1286- (void) setDockingClearanceStatus:(OODockingClearanceStatus) newValue;
1287- (OODockingClearanceStatus) getDockingClearanceStatus;
1288- (void) penaltyForUnauthorizedDocking;
1289
1290- (NSArray *) scannedWormholes;
1291
1292- (WormholeEntity *) wormhole;
1293- (void) setWormhole:(WormholeEntity *)newWormhole;
1294- (void) addScannedWormhole:(WormholeEntity*)wormhole;
1295
1296- (void) initialiseMissionDestinations:(NSDictionary *)destinations andLegacy:(NSArray *)legacy;
1297- (NSString *)markerKey:(NSDictionary*)marker;
1298- (void) addMissionDestinationMarker:(NSDictionary *)marker;
1299- (BOOL) removeMissionDestinationMarker:(NSDictionary *)marker;
1300- (NSMutableDictionary*) getMissionDestinations;
1301
1302- (NSMutableDictionary*) shipyardRecord;
1303
1304- (void) setLastShot:(NSArray *)shot;
1305
1306- (void) showShipModelWithKey:(NSString *)shipKey shipData:(NSDictionary *)shipData personality:(uint16_t)personality factorX:(GLfloat)factorX factorY:(GLfloat)factorY factorZ:(GLfloat)factorZ inContext:(NSString *)context;
1307
1308- (void) doGuiScreenResizeUpdates;
1309
1310/* Fractional expression of amount of entry inside a planet's atmosphere. 0.0f is out of atmosphere,
1311 1.0f is fully in and is normally associated with the point of ship destruct due to altitude.
1312*/
1313- (GLfloat) insideAtmosphereFraction;
1314
1315@end
1316
1317
1318/* Use PLAYER to refer to the shared player object in cases where it is
1319 assumed to exist (i.e., except during early initialization).
1320*/
1323{
1324 extern PlayerEntity *gOOPlayer;
1325#if OO_DEBUG
1326 NSCAssert(gOOPlayer != nil, @"PLAYER used when [PlayerEntity sharedPlayer] has not been called.");
1327#endif
1328 return gOOPlayer;
1329}
1330#define PLAYER OOGetPlayer()
1331
1332#define KILOGRAMS_PER_POD 1000
1333#define MAX_KILOGRAMS_IN_SAFE ((KILOGRAMS_PER_POD / 2) - 1)
1334#define GRAMS_PER_POD (KILOGRAMS_PER_POD * 1000)
1335#define MAX_GRAMS_IN_SAFE ((GRAMS_PER_POD / 2) - 1)
1336
1337
1338NSString *OODisplayRatingStringFromKillCount(unsigned kills);
1339NSString *KillCountToRatingAndKillString(unsigned kills);
1340NSString *OODisplayStringFromLegalStatus(int legalStatus);
1341
1344
OOGUIBackgroundSpecial
#define INLINE_CONST_FUNC
#define OOINLINE
#define PURE_FUNC
#define CONST_FUNC
GLfloat OOScalar
Definition OOMaths.h:64
return nil
OOLongRangeChartMode
Definition OOTypes.h:50
uint8_t OOWeaponFacingSet
Definition OOTypes.h:237
NSString * OOCommodityType
Definition OOTypes.h:106
OORouteType
Definition OOTypes.h:33
OOViewID
Definition OOTypes.h:43
uint64_t OOCreditsQuantity
Definition OOTypes.h:182
uint16_t OOUniversalID
Definition OOTypes.h:189
int16_t OOSystemID
Definition OOTypes.h:211
OOCompassMode
Definition OOTypes.h:145
uint8_t OOGalaxyID
Definition OOTypes.h:210
uint32_t OOCargoQuantity
Definition OOTypes.h:176
double OOTimeDelta
Definition OOTypes.h:224
OODockingClearanceStatus
Definition OOTypes.h:167
OOWeaponFacing
Definition OOTypes.h:228
OOEnergyUnitType
Definition OOTypes.h:131
OOGalacticHyperspaceBehaviour
@ GALACTIC_HYPERSPACE_MAX
@ GUI_ROW_MARKET_SCROLLUP
@ GUI_ROW_OPTIONS_QUICKSAVE
@ STATUS_EQUIPMENT_FIRST_ROW
@ GUI_ROW_EQUIPMENT_CASH
@ GUI_ROW_OPTIONS_SAVE
@ GUI_ROW_MARKET_CASH
@ GUI_ROW_OPTIONS_END_OF_LIST
@ GUI_ROW_OPTIONS_LOAD
@ GUI_ROW_OPTIONS_BEGIN_NEW
@ GUI_ROW_SCENARIOS_START
@ GUI_ROW_OPTIONS_SPACER2
@ GUI_ROW_CHART_SYSTEM_COMPACT
@ GUI_ROW_EQUIPMENT_DETAIL
@ GUI_ROW_MARKET_KEY
@ GUI_ROW_OPTIONS_SPACER1
@ STATUS_EQUIPMENT_MAX_ROWS
@ GUI_ROW_SCENARIOS_DETAIL
@ GUI_MAX_ROWS_SCENARIOS
@ GUI_ROW_MARKET_SCROLLDOWN
@ GUI_MAX_ROWS_EQUIPMENT
@ GUI_ROW_NO_INTERFACES
@ GUI_ROW_EQUIPMENT_START
@ GUI_ROW_MARKET_START
@ GUI_ROW_MARKET_END
@ GUI_ROW_CHART_SYSTEM
@ GUI_ROW_INTERFACES_DETAIL
@ GUI_ROW_INTERFACES_HEADING
@ GUI_ROW_MARKET_LAST
@ STATUS_EQUIPMENT_BIGGUI_EXTRA_ROWS
@ GUI_ROW_PLANET_FINDER
@ GUI_ROW_INTERFACES_START
@ GUI_MAX_ROWS_INTERFACES
@ GUI_ROW_OPTIONS_GAMEOPTIONS
OOPlayerFleeingStatus
@ PLAYER_FLEEING_MAYBE
@ PLAYER_FLEEING_LIKELY
@ PLAYER_FLEEING_NONE
@ PLAYER_FLEEING_CARGO
@ PLAYER_FLEEING_UNLIKELY
@ GUI_ROW_GAMEOPTIONS_SPACER3
@ GUI_ROW_GAMEOPTIONS_SPACER1
@ GUI_ROW_GAMEOPTIONS_SPACER2
@ GUI_ROW_GAMEOPTIONS_AUTOSAVE
@ GUI_ROW_GAMEOPTIONS_FOV
@ GUI_ROW_GAMEOPTIONS_KEYMAPPER
@ GUI_ROW_GAMEOPTIONS_WIREFRAMEGRAPHICS
@ GUI_ROW_GAMEOPTIONS_COLORBLINDMODE
@ GUI_ROW_GAMEOPTIONS_SPEECH
@ GUI_ROW_GAMEOPTIONS_DISPLAY
@ GUI_ROW_GAMEOPTIONS_BACK
@ GUI_ROW_GAMEOPTIONS_SHADEREFFECTS
@ GUI_ROW_GAMEOPTIONS_MUSIC
@ GUI_ROW_GAMEOPTIONS_SPACER_STICKMAPPER
@ GUI_ROW_GAMEOPTIONS_PROCEDURALLYTEXTUREDPLANETS
@ GUI_ROW_GAMEOPTIONS_VOLUME
@ GUI_ROW_GAMEOPTIONS_STICKMAPPER
@ GUI_ROW_GAMEOPTIONS_DETAIL
@ GUI_ROW_GAMEOPTIONS_END_OF_LIST
@ GUI_ROW_GAMEOPTIONS_DOCKINGCLEARANCE
@ GUI_ROW_GAMEOPTIONS_DISPLAYSTYLE
OOPrimedEquipmentMode
@ OOPRIMEDEQUIP_ACTIVATED
@ OOPRIMEDEQUIP_MODE
OOMarketFilterMode
@ MARKET_FILTER_MODE_HOLD
@ MARKET_FILTER_MODE_RESTRICTED
@ MARKET_FILTER_MODE_MAX
@ MARKET_FILTER_MODE_STOCK
@ MARKET_FILTER_MODE_TRADE
@ MARKET_FILTER_MODE_OFF
@ MARKET_FILTER_MODE_LEGAL
OOSpeechSettings
@ OOSPEECHSETTINGS_ALL
@ OOSPEECHSETTINGS_OFF
@ OOSPEECHSETTINGS_COMMS
uint16_t OOAlertFlags
OOGUIScreenID
OOINLINE PlayerEntity * OOGetPlayer(void) INLINE_CONST_FUNC
OOGUIScreenID OOGUIScreenIDFromString(NSString *string) PURE_FUNC
OOFuelScoopStatus
@ SCOOP_STATUS_FULL_HOLD
@ SCOOP_STATUS_NOT_INSTALLED
@ SCOOP_STATUS_ACTIVE
@ SCOOP_STATUS_OKAY
NSString * OOStringFromGalacticHyperspaceBehaviour(OOGalacticHyperspaceBehaviour behaviour) CONST_FUNC
OOGalacticHyperspaceBehaviour OOGalacticHyperspaceBehaviourFromString(NSString *string) PURE_FUNC
NSString * OODisplayRatingStringFromKillCount(unsigned kills)
@ ALERT_FLAG_TEMP
@ ALERT_FLAG_ENERGY
@ ALERT_FLAG_HOSTILES
@ ALERT_FLAG_DOCKED
@ ALERT_FLAG_MASS_LOCK
@ ALERT_FLAG_YELLOW_LIMIT
@ ALERT_FLAG_ALT
@ GUI_ROW_GAMEOPTIONS_HDRPAPERWHITE
@ GUI_ROW_GAMEOPTIONS_HDRMAXBRIGHTNESS
@ kOOGUIScreenIDDefault
@ kOOGalacticHyperspaceBehaviourDefault
OOMissileStatus
@ MISSILE_STATUS_TARGET_LOCKED
@ MISSILE_STATUS_ARMED
@ MISSILE_STATUS_SAFE
OOMarketSorterMode
@ MARKET_SORTER_MODE_PRICE
@ MARKET_SORTER_MODE_OFF
@ MARKET_SORTER_MODE_STOCK
@ MARKET_SORTER_MODE_ALPHA
@ MARKET_SORTER_MODE_MAX
@ MARKET_SORTER_MODE_UNIT
@ MARKET_SORTER_MODE_HOLD
NSString * OODisplayStringFromLegalStatus(int legalStatus)
NSString * KillCountToRatingAndKillString(unsigned kills)
NSString * OOStringFromGUIScreenID(OOGUIScreenID screen) CONST_FUNC
PlayerEntity * gOOPlayer
OOAlertCondition
Definition ShipEntity.h:172
NSArray * n_key_yaw_left
NSMutableDictionary * roleWeightFlags
unsigned bomb_detonated
OOTimeDelta forward_shot_time
NSMutableDictionary * passenger_record
NSArray * n_key_activate_equipment
NSString * _jumpCause
double script_time_check
unsigned mouse_control_on
OOScalar saved_chart_zoom
GLfloat aft_shield
unsigned launchingMissile
NSDictionary * keyconfig2_settings
NSInteger marketOffset
NSArray * n_key_gui_screen_interfaces
OOSystemID info_system_id
NSArray * n_key_gui_arrow_right
NSArray * n_key_scanner_zoom
NSArray * n_key_debug_shaders
unsigned autopilot_engaged
NSArray * n_key_next_target
NSArray * n_key_docking_clearance_request
GLfloat roll_delta
float _trumbleAppetiteAccumulator
NSMutableDictionary * missionDestinations
NSArray * n_key_market_buy_max
NSDictionary * keyCodeLookups
NSMutableArray * parcels
NSArray * n_key_rotate_cargo
NSArray * n_key_custom_view_rotate_left
NSArray * n_key_untarget_missile
NSArray * n_key_gui_screen_status
NSArray * kbdLayouts
StickProfileScreen * stickProfileScreen
NSArray * n_key_oxzmanager_extract
GLfloat max_forward_shield
OOMarketSorterMode marketSorterMode
GLfloat pitch_delta
NSArray * n_key_map_next_system
NSArray * n_key_custom_view_pan_left
OOCargoQuantity current_cargo
NSArray * n_key_info_next_system
NSUInteger trumbleCount
Vector starboardViewOffset
GLfloat max_aft_shield
OOPlayerFleeingStatus fleeing_status
NSArray * n_key_yaw_right
NSArray * n_key_custom_view_pan_down
unsigned keyboardPitchOverride
NSArray * n_key_map_info
NSMutableArray * contracts
unsigned ident_engaged
OODockingClearanceStatus dockingClearanceStatus
NSArray * n_key_view_forward
NSString * _missionScreenID
double fps_check_time
NSArray * _customViews
NSMutableDictionary * localVariables
BOOL _missionAllowInterrupt
NSArray * n_key_debug_off
NSString * keyShiftText
Vector forwardViewOffset
NSArray * n_key_galactic_hyperspace
NSArray * n_key_autopilot
unsigned massLockable
NSArray * n_key_weapons_online_toggle
unsigned ship_kills
OOWeakReference * _dockedStation
NSArray * n_key_pausebutton
OOGalaxyID galaxy_number
NSArray * n_key_ecm
NSMutableDictionary * customDialSettings
NSArray * n_key_dump_target_state
int ship_trade_in_factor
OOWeakReference * compassTarget
unsigned waitingForStickCallback
NSDictionary * _missionOverlayDescriptor
NSString * _fastEquipmentB
NSArray * n_key_gui_select
NSArray * n_key_custom_view_zoom_out
NSArray * n_key_custom_view_roll_right
NSArray * n_key_dump_entity_list
NSMutableArray * roleSystemList
GLfloat launchRoll
NSMutableArray * cdrDetailArray
NSArray * n_key_market_buy_one
OOLongRangeChartMode longRangeChartMode
NSArray * n_key_roll_right
NSMutableDictionary * contract_record
unsigned travelling_at_hyperspeed
unsigned replacingMissile
NSMutableString * dockingReport
NSArray * n_key_cycle_next_mfd
ShipEntity * demoShip
NSString * _lastsaveName
NSMutableArray * target_memory
NSString * specialCargo
double ecm_start_time
NSInteger missionTextRow
NSString * _missionTitle
unsigned hyperspeed_engaged
NSArray * n_key_advanced_nav_array_previous
float occlusion_dial
NSArray * n_key_gui_chart_screens
NSArray * n_key_system_previous_system
unsigned scoopOverride
OOSystemID previous_system_id
NSMutableArray * roleWeights
NSArray * n_key_snapshot
OOGUIScreenID _missionExitScreen
NSPoint custom_chart_centre_coordinates
NSArray * n_key_gui_arrow_up
NSString * scenarioKey
OOAlertFlags alertFlags
double fieldOfView
NSArray * n_key_debug_full
NSArray * n_key_gui_arrow_down
NSArray * n_key_custom_view
NSArray * n_key_autodock
OOMarketFilterMode marketFilterMode
OOTimeDelta witchspaceCountdown
NSMutableArray * passengers
NSString * commanderNameString
NSArray * n_key_gui_page_up
NSArray * n_key_prev_compass_mode
NSArray * n_key_jumpdrive
unsigned afterburnerSoundLooping
unsigned afterburner_engaged
unsigned scoopsActive
NSDictionary * extraMissionKeys
double script_time
OOCommodityMarket * shipCommodityData
OORouteType ANA_mode
NSArray * n_key_cycle_previous_mfd
NSArray * n_key_market_sell_max
NSMutableDictionary * reputation
NSArray * n_key_bloom_toggle
NSPoint galaxy_coordinates
NSArray * n_key_roll_left
NSArray * lastShot
NSString * planetSearchString
NSArray * n_key_system_home
OOAlertCondition lastScriptAlertCondition
NSMutableDictionary * commodityScripts
NSArray * n_key_custom_view_zoom_in
Vector portViewOffset
NSArray * n_key_chart_highlight
NSDictionary * _equipScreenBackgroundDescriptor
NSArray * n_key_mode_equipment
NSMutableArray * commLog
OOTrumble * trumble[PLAYER_MAX_TRUMBLES]
NSString * lastTextKey
NSArray * n_key_inject_fuel
NSArray * n_key_hyperspace
NSString * keyMod1Text
double ship_clock
double escape_pod_rescue_time
NSArray * n_key_custom_view_rotate_up
NSString * missionChoice
NSArray * n_key_increase_speed
unsigned keyboardYawOverride
NSArray * n_key_system_next_system
unsigned showDemoShips
NSArray * n_key_show_fps
NSUInteger target_memory_index
NSArray * n_key_system_end
GLfloat hyperspeedFactor
NSArray * n_key_debug_bounding_boxes
NSArray * n_key_market_sell_one
NSPoint target_chart_focus
NSArray * n_key_custom_view_rotate_right
OOSystemID system_id
NSArray * n_key_market_sorter_cycle
NSArray * n_key_scanner_unzoom
unsigned rolling
NSArray * n_key_gui_arrow_left
Quaternion customViewQuaternion
NSArray * n_key_view_starboard
OOScalar target_chart_zoom
NSString * keyMod2Text
Vector customViewRightVector
GLfloat fuel_leak_rate
ShipEntity * missile_entity[PLAYER_MAX_MISSILES]
NSArray * n_key_pitch_back
NSArray * stickFunctions
OOMatrix playerRotMatrix
NSDictionary * worldScriptsRequiringTickle
NSString * _commanderName
NSMutableDictionary * mission_variables
NSMutableDictionary * parcel_record
unsigned weapons_online
BOOL showingLongRangeChart
Vector customViewOffset
NSArray * n_key_mouse_control_roll
unsigned pitching
NSArray * n_key_launch_ship
Vector _sysInfoLight
NSArray * n_key_gui_market
OOCreditsQuantity credits
NSDictionary * _missionBackgroundDescriptor
NSArray * n_key_launch_missile
OOTimeDelta aft_shot_time
OOGalacticHyperspaceBehaviour galacticHyperspaceBehaviour
NSPoint cursor_coordinates
HeadUpDisplay * hud
NSArray * n_key_gui_system_data
NSArray * n_key_gui_screen_equipship
NSUInteger _customViewIndex
NSArray * n_key_debug_console_connect
NSMutableArray * eqScripts
NSString * missionKeyPress
OOGUIScreenID gui_screen
OOScalar chart_zoom
NSArray * n_key_info_previous_system
NSArray * n_key_custom_view_rotate_down
unsigned keyboardRollOverride
NSArray * n_key_prime_next_equipment
double last_ecm_time
BOOL _missionTextEntry
NSArray * n_key_map_end
NSArray * keyFunctions
NSArray * n_key_custom_view_pan_up
NSArray * n_key_ident_system
GLfloat scanner_zoom_rate
unsigned max_passengers
OOSpeechSettings isSpeechOn
NSArray * n_key_oxzmanager_setfilter
OOUniversalID _dockTarget
NSArray * n_key_gui_page_down
OOScalar custom_chart_zoom
NSArray * n_key_decrease_speed
NSMutableDictionary * multiFunctionDisplayText
NSMutableArray * multiFunctionDisplaySettings
unsigned show_info_flag
NSArray * n_key_target_incoming_missile
NSArray * n_key_next_missile
OOMatrix customViewMatrix
NSString * _fastEquipmentA
OOSystemID found_system_id
unsigned using_mining_laser
NSUInteger activeMissile
Vector customViewUpVector
NSArray * n_key_gui_screen_options
NSArray * n_key_prime_previous_equipment
NSArray * n_key_oxzmanager_showinfo
NSArray * n_key_comms_log
unsigned hyperspeed_locked
OOAlertCondition alertCondition
NSArray * n_key_view_port
NSArray * n_key_market_filter_cycle
Vector aftViewOffset
NSPoint galacticHyperspaceFixedCoords
NSArray * n_key_target_missile
NSArray * n_key_map_zoom_out
NSArray * n_key_switch_next_mfd
OOTimeDelta starboard_shot_time
unsigned galactic_witchjump
NSArray * n_key_advanced_nav_array_next
NSMutableDictionary * shipyard_record
NSArray * n_key_pitch_forward
Vector customViewForwardVector
NSArray * n_key_fire_lasers
NSMutableArray * customModePressed
NSDictionary * worldScripts
NSUInteger activeMFD
OOMissileStatus missile_status
unsigned game_over
unsigned yawing
GLfloat yaw_delta
GLfloat forward_shield_recharge_rate
BOOL _missionWithCallback
WormholeEntity * wormhole
NSArray * n_key_mouse_control_yaw
NSMutableArray * scannedWormholes
NSArray * n_key_map_home
double maxFieldOfView
NSArray * n_key_view_aft
double ship_clock_adjust
NSArray * n_key_fastactivate_equipment_b
NSArray * n_key_debug_collision
NSMutableArray * customActivatePressed
double script_time_interval
NSArray * n_key_docking_music
OOCommodityType marketSelectedCommodity
NSArray * n_key_custom_view_pan_right
NSArray * n_key_dump_cargo
NSPoint chart_focus_coordinates
NSArray * n_key_launch_escapepod
NSPoint target_chart_centre
NSString * save_path
NSArray * n_key_custom_view_roll_left
NSMutableArray * customEquipActivation
GLfloat aft_shield_recharge_rate
OOTimeDelta port_shot_time
OOCompassMode compassMode
OOGUIBackgroundSpecial _missionBackgroundSpecial
NSUInteger primedEquipment
NSArray * n_key_map_previous_system
unsigned suppressTargetLost
NSMutableDictionary * extraGuiScreenKeys
unsigned ecm_in_operation
NSArray * n_key_fastactivate_equipment_a
unsigned finished
double last_fps_check_time
NSString * customViewDescription
GLfloat forward_shield
NSArray * n_key_hud_toggle
OOSystemID target_system_id
NSArray * n_key_switch_previous_mfd
NSArray * n_key_previous_target
OOWeaponFacing chosen_weapon_facing
NSPoint chart_centre_coordinates
Vector customViewRotationCenter
StationEntity * targetDockStation
NSArray * n_key_map_zoom_in
NSArray * n_key_next_compass_mode
typedef int(ZCALLBACK *close_file_func) OF((voidpf opaque