Oolite
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
183 GUI_ROW_GAMEOPTIONS_SPEECH,
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
199 GUI_ROW_GAMEOPTIONS_PROCEDURALLYTEXTUREDPLANETS,
200#endif
209
212#if GUI_FIRST_ROW() < 0
213# error Too many items in GAMEOPTIONS list!
214#endif
215
216enum
217{
221
222
231
232
233enum
234{
241 ALERT_FLAG_HOSTILES = 0x200
243typedef uint16_t OOAlertFlags;
244
245
253
254
263
264
277
278
290
291
292#define ECM_ENERGY_DRAIN_FACTOR 20.0f
293#define ECM_DURATION 2.5f
294
295#define ROLL_DAMPING_FACTOR 1.0f
296#define PITCH_DAMPING_FACTOR 1.0f
297#define YAW_DAMPING_FACTOR 1.0f
298
299#define PLAYER_MAX_WEAPON_TEMP 256.0f
300#ifdef OO_DUMP_PLANETINFO
301// debugging
302#define PLAYER_MAX_FUEL 7000
303#else
304#define PLAYER_MAX_FUEL 70
305#endif
306#define PLAYER_MAX_MISSILES 16
307#define PLAYER_STARTING_MAX_MISSILES 4
308#define PLAYER_STARTING_MISSILES 3
309#define PLAYER_DIAL_MAX_ALTITUDE 40000.0
310#define PLAYER_SUPER_ALTITUDE2 10000000000.0
311
312#define PLAYER_MAX_TRUMBLES 24
313
314#define PLAYER_TARGET_MEMORY_SIZE 16
315
316#if OO_VARIABLE_TORUS_SPEED
317#define HYPERSPEED_FACTOR [PLAYER hyperspeedFactor]
318#define MIN_HYPERSPEED_FACTOR 32.0
319#define MAX_HYPERSPEED_FACTOR 1024.0
320#else
321#define HYPERSPEED_FACTOR 32.0
322#endif
323
324#define PLAYER_SHIP_DESC @"cobra3-player"
325
326#define ESCAPE_SEQUENCE_TIME 10.0
327
328#define FORWARD_FACING_STRING DESC(@"forward-facing-string")
329#define AFT_FACING_STRING DESC(@"aft-facing-string")
330#define PORT_FACING_STRING DESC(@"port-facing-string")
331#define STARBOARD_FACING_STRING DESC(@"starboard-facing-string")
332
333#define KEY_REPEAT_INTERVAL 0.20
334
335#define PLAYER_SHIP_CLOCK_START (2084004 * 86400.0)
336// adding or removing a player ship subentity increases or decreases the ship's trade-in factor respectively by this amount
337#define PLAYER_SHIP_SUBENTITY_TRADE_IN_VALUE 3
338
339#define CONTRACTS_GOOD_KEY @"contracts_fulfilled"
340#define CONTRACTS_BAD_KEY @"contracts_expired"
341#define CONTRACTS_UNKNOWN_KEY @"contracts_unknown"
342#define PASSAGE_GOOD_KEY @"passage_fulfilled"
343#define PASSAGE_BAD_KEY @"passage_expired"
344#define PASSAGE_UNKNOWN_KEY @"passage_unknown"
345#define PARCEL_GOOD_KEY @"parcels_fulfilled"
346#define PARCEL_BAD_KEY @"parcels_expired"
347#define PARCEL_UNKNOWN_KEY @"parcels_unknown"
348
349
350#define SCANNER_ZOOM_RATE_UP 2.0
351#define SCANNER_ZOOM_RATE_DOWN -8.0
352#define SCANNER_ECM_FUZZINESS 1.25
353
354#define PLAYER_INTERNAL_DAMAGE_FACTOR 31
355
356#define PLAYER_DOCKING_AI_NAME @"oolite-player-AI.plist"
357
358#define MANIFEST_SCREEN_ROW_BACK 1
359#define MANIFEST_SCREEN_ROW_NEXT ([[PLAYER hud] isHidden]?27:20)
360
361#define MISSION_DEST_LEGACY @"__oolite_legacy_destinations"
362
363
365{
366@private
371
373
376
377 NSDictionary *worldScripts;
379 NSMutableDictionary *commodityScripts;
380 NSMutableDictionary *mission_variables;
381 NSMutableDictionary *localVariables;
382 NSString *_missionTitle;
383 NSInteger /*OOGUIRow*/ missionTextRow;
384 NSString *missionChoice;
390
391 NSString *specialCargo;
392
393 NSMutableArray *commLog;
394
395 NSMutableArray *eqScripts;
396
402
404
405 NSMutableDictionary *reputation;
406
408 NSMutableArray *passengers;
409 NSMutableDictionary *passenger_record;
410
411 NSMutableArray *parcels;
412 NSMutableDictionary *parcel_record;
413
414 NSMutableArray *contracts;
415 NSMutableDictionary *contract_record;
416
417 NSMutableDictionary *shipyard_record;
418
419 NSMutableDictionary *missionDestinations;
420 NSMutableArray *roleWeights;
421 // temporary flags for role actions taking multiple steps, cleared on jump
422 NSMutableDictionary *roleWeightFlags;
423 NSMutableArray *roleSystemList; // list of recently visited sysids
424
428 NSString *lastTextKey;
429
432
434
438
440
442
444
445 // For OO-GUI based save screen
447 NSMutableArray *cdrDetailArray;
450// ...end save screen
451
452 NSInteger marketOffset;
456
458
459/* Used by the DOCKING_CLEARANCE code to implement docking at non-main
460 * stations. Could possibly overload use of 'dockedStation' instead
461 * but that needs futher investigation to ensure it doesn't break anything. */
463
465 NSMutableDictionary *multiFunctionDisplayText;
467 NSUInteger activeMFD;
468 NSMutableDictionary *customDialSettings;
469
471 GLfloat launchRoll;
472
476
477 OOWeaponFacing chosen_weapon_facing; // for purchasing weapons
478
481
488 NSUInteger activeMissile;
489 NSUInteger primedEquipment;
492
494
499 // where we want the chart centre to be - used for smooth transitions
502 // Chart zoom is 1.0 when fully zoomed in and increases as we zoom out. The reason I've done it that way round
503 // is because we might want to implement bigger galaxies one day, and thus may need to zoom out indefinitely.
510
511 NSString *_jumpCause;
512
513 // player commander data
514 NSString *_commanderName;
515 NSString *_lastsaveName;
517
520
522
523 ShipEntity *missile_entity[PLAYER_MAX_MISSILES]; // holds the actual missile entities or equivalents
524 OOUniversalID _dockTarget; // used by the escape pod code
525
526 int legalStatus; // legalStatus both is and isn't an OOCreditsQuantity, because of quantum.
528 unsigned ship_kills;
529
532
534
535#if OO_VARIABLE_TORUS_SPEED
537#endif
538
539 // keys!
540 NSDictionary *keyconfig2_settings;
541 NSDictionary *keyCodeLookups;
542
549
550 NSArray *n_key_view_forward; // && undock
551 NSArray *n_key_view_aft; // && options menu
552 NSArray *n_key_view_port; // && equipment screen
553 NSArray *n_key_view_starboard; // && interfaces screen
554
563
571
575
579 NSArray *n_key_ecm;
580
587
592
595
597
601
604
607
610
622
627
634
638
646
649
663
666
671
675
676#if OO_FOV_INFLIGHT_CONTROL_ENABLED
677 NSArray *n_key_inc_field_of_view;
678 NSArray *n_key_dec_field_of_view;
679#endif
680
681#ifndef NDEBUG
690#endif
691
692 // dict to hold custom key config for OXP equipment with activate/mode functions
693 NSMutableArray *customEquipActivation;
694 NSMutableArray *customActivatePressed;
695 NSMutableArray *customModePressed;
696
697 // dict to hold extra keys for missions screen.
698 NSDictionary *extraMissionKeys;
699
700 NSMutableDictionary *extraGuiScreenKeys;
701
702 // save-file
703 NSString *save_path;
704 NSString *scenarioKey;
705
706 // position of viewports
709
710 // trumbles
711 NSUInteger trumbleCount;
712 OOTrumble *trumble[PLAYER_MAX_TRUMBLES];
714
715 // smart zoom
717
718 // target memory
719 // TODO: this should use weakrefs
720 NSMutableArray *target_memory;
722
723 // custom view points
728
729
730 // docking reports
731 NSMutableString *dockingReport;
732
733 // Woo, flags.
734 unsigned suppressTargetLost: 1, // smart target lst reports
735 scoopsActive: 1, // smart fuelscoops
736
737 scoopOverride: 1, //scripted to just be on, ignoring normal rules
742
745
749
751
753
755
757
759
762
764
765 keyboardRollOverride: 1, // Handle keyboard roll...
766 keyboardPitchOverride: 1, // ...and pitch override separately - (fix for BUG #17490)
769
771
774
776#if OOLITE_ESPEAK
777 unsigned int voice_no;
778 BOOL voice_gender_m;
779#endif
781
782
783 // For PlayerEntity (StickMapper)
785 NSArray *stickFunctions;
786 NSArray *keyFunctions;
787 NSArray *kbdLayouts;
788 NSString *keyShiftText;
789 NSString *keyMod1Text;
790 NSString *keyMod2Text;
791
794
796
797 NSArray *_customViews;
799
801
802 NSMutableArray *scannedWormholes;
804
805 ShipEntity *demoShip; // Used while docked to maintain demo ship rotation.
806 NSArray *lastShot; // used to correctly position laser shots on first frame of firing
807
809
812#if OO_FOV_INFLIGHT_CONTROL_ENABLED
813 double fov_delta;
814#endif
815}
816
817+ (PlayerEntity *) sharedPlayer;
818- (void) deferredInit;
819
820- (BOOL) setUpAndConfirmOK:(BOOL)stopOnError;
821- (BOOL) setUpAndConfirmOK:(BOOL)stopOnError saveGame:(BOOL)loadingGame;
822- (void) completeSetUp;
823- (void) completeSetUpAndSetTarget:(BOOL)setTarget;
824- (void) startUpComplete;
825
826- (NSString *) commanderName;
827- (void) setCommanderName:(NSString *)value;
828- (NSString *) lastsaveName;
829- (void) setLastsaveName:(NSString *)value;
830
831- (BOOL) isDocked;
832
833- (void) warnAboutHostiles;
834
835- (void) unloadCargoPods;
836- (void) loadCargoPods;
837- (void) unloadAllCargoPodsForType:(OOCommodityType)type toManifest:(OOCommodityMarket *) manifest;
838- (void) unloadCargoPodsForType:(OOCommodityType)type amount:(OOCargoQuantity) quantity;
839- (void) loadCargoPodsForType:(OOCommodityType)type fromManifest:(OOCommodityMarket *) manifest;
840- (void) loadCargoPodsForType:(OOCommodityType)type amount:(OOCargoQuantity) quantity;
841- (OOCommodityMarket *) shipCommodityData;
842
843- (OOCreditsQuantity) deciCredits;
844
845- (int) random_factor;
846- (void) setRandom_factor:(int)rf;
847- (OOGalaxyID) galaxyNumber;
848- (NSPoint) galaxy_coordinates;
849- (void) setGalaxyCoordinates:(NSPoint)newPosition;
850- (void) setCustomChartCentre:(NSPoint)coords;
851- (NSPoint) cursor_coordinates;
852- (NSPoint) chart_centre_coordinates;
853- (NSPoint) custom_chart_centre_coordinates;
854- (OOScalar) chart_zoom;
855- (OOScalar) custom_chart_zoom;
856- (void) setCustomChartZoom:(OOScalar)zoom;
857- (NSPoint) adjusted_chart_centre;
858- (OORouteType) ANAMode;
859
860- (NSString *) jumpCause;
861- (void) setJumpCause:(NSString *)value;
862
863- (OOSystemID) systemID;
864- (void) setSystemID:(OOSystemID) sid;
865- (OOSystemID) targetSystemID;
866- (void) setTargetSystemID:(OOSystemID) sid;
867- (OOSystemID) previousSystemID;
868- (void) setPreviousSystemID:(OOSystemID) sid;
869- (OOSystemID) nextHopTargetSystemID;
870- (OOSystemID) infoSystemID;
871- (void) setInfoSystemID: (OOSystemID) sid moveChart:(BOOL) moveChart;
872- (void) nextInfoSystem;
873- (void) previousInfoSystem;
874- (void) homeInfoSystem;
875- (void) targetInfoSystem;
876- (BOOL) infoSystemOnRoute;
877
878
879- (NSDictionary *) commanderDataDictionary;
880- (BOOL)setCommanderDataFromDictionary:(NSDictionary *) dict;
881
882- (void) addEquipmentWithScriptToCustomKeyArray:(NSString *)equipmentKey;
883- (void) validateCustomEquipActivationArray;
884
885- (void) doBookkeeping:(double) delta_t;
886- (BOOL) isValidTarget:(Entity*)target;
887
888- (void) setMassLockable:(BOOL)newValue;
889- (BOOL) massLockable;
890- (BOOL) massLocked;
891- (BOOL) atHyperspeed;
892
893- (float) occlusionLevel;
894- (void) setOcclusionLevel:(float)level;
895
896- (void) setDockedAtMainStation;
897- (StationEntity *) dockedStation;
898// Dumb setter; callers are responsible for sanity.
899- (void) setDockedStation:(StationEntity *)station;
900
901- (void) performDockingRequest:(StationEntity *)stationForDocking;
902- (void) requestDockingClearance:(StationEntity *)stationForDocking;
903- (void) cancelDockingRequest:(StationEntity *)stationForDocking;
904- (BOOL) engageAutopilotToStation:(StationEntity *)stationForDocking;
905- (void) disengageAutopilot;
906
907- (void) resetAutopilotAI;
908
909- (void) setTargetDockStationTo:(StationEntity *) value;
910- (StationEntity *) getTargetDockStation;
911
912- (HeadUpDisplay *) hud;
913- (BOOL) switchHudTo:(NSString *)hudFileName;
914- (void) resetHud;
915
916- (float) dialCustomFloat:(NSString *)dialKey;
917- (NSString *) dialCustomString:(NSString *)dialKey;
918- (OOColor *) dialCustomColor:(NSString *)dialKey;
919- (void) setDialCustom:(id)value forKey:(NSString *)key;
920
921
922- (NSArray *) multiFunctionDisplayList;
923- (NSString *) multiFunctionText:(NSUInteger) index;
924- (void) setMultiFunctionText:(NSString *)text forKey:(NSString *)key;
925- (BOOL) setMultiFunctionDisplay:(NSUInteger) index toKey:(NSString *)key;
926- (void) cycleNextMultiFunctionDisplay:(NSUInteger) index;
927- (void) cyclePreviousMultiFunctionDisplay:(NSUInteger) index;
928- (void) selectNextMultiFunctionDisplay;
929- (void) selectPreviousMultiFunctionDisplay;
930- (NSUInteger) activeMFD;
931
932- (void) setShowDemoShips:(BOOL) value;
933- (BOOL) showDemoShips;
934
935- (GLfloat) forwardShieldLevel;
936- (GLfloat) aftShieldLevel;
937- (GLfloat) baseMass;
938
939- (void) setForwardShieldLevel:(GLfloat)level;
940- (void) setAftShieldLevel:(GLfloat)level;
941
942- (float) forwardShieldRechargeRate;
943- (float) aftShieldRechargeRate;
944
945- (void) setMaxForwardShieldLevel:(float)new;
946- (void) setMaxAftShieldLevel:(float)new;
947- (void) setForwardShieldRechargeRate:(float)new;
948- (void) setAftShieldRechargeRate:(float)new;
949
950// return keyconfig.plist settings for scripting
951- (NSDictionary *) keyConfig;
952- (BOOL) isMouseControlOn;
953
954- (GLfloat) dialRoll;
955- (GLfloat) dialPitch;
956- (GLfloat) dialYaw;
957- (GLfloat) dialSpeed;
958- (GLfloat) dialHyperSpeed;
959
960- (void) currentWeaponStats;
961
962- (GLfloat) dialForwardShield;
963- (GLfloat) dialAftShield;
964
965- (GLfloat) dialEnergy;
966- (GLfloat) dialMaxEnergy;
967
968- (GLfloat) dialFuel;
969- (GLfloat) dialHyperRange;
970
971- (GLfloat) dialAltitude;
972
973- (unsigned) countMissiles;
974- (OOMissileStatus) dialMissileStatus;
975
976- (OOFuelScoopStatus) dialFuelScoopStatus;
977
978- (float) fuelLeakRate;
979- (void) setFuelLeakRate:(float)value;
980
981#if OO_VARIABLE_TORUS_SPEED
982- (GLfloat) hyperspeedFactor;
983#endif
984- (BOOL) injectorsEngaged;
985- (BOOL) hyperspeedEngaged;
986
987- (NSMutableArray *) customEquipmentActivation;
988
989
990- (double) clockTime; // Note that this is not an OOTimeAbsolute
991- (double) clockTimeAdjusted; // Note that this is not an OOTimeAbsolute
992- (BOOL) clockAdjusting;
993- (void) addToAdjustTime:(double) seconds ;
994
995- (double) escapePodRescueTime;
996- (void) setEscapePodRescueTime:(double) seconds;
997
998- (NSString *) dial_clock;
999- (NSString *) dial_clock_adjusted;
1000- (NSString *) dial_fpsinfo;
1001- (NSString *) dial_objinfo;
1002
1003- (NSMutableArray *) commLog;
1004
1005- (Entity *) compassTarget;
1006- (void) setCompassTarget:(Entity *)value;
1007- (void) validateCompassTarget;
1008
1009- (NSString *) compassTargetLabel;
1010
1011- (OOCompassMode) compassMode;
1012- (void) setCompassMode:(OOCompassMode)value;
1013- (void) setPrevCompassMode;
1014- (void) setNextCompassMode;
1015
1016- (NSUInteger) activeMissile;
1017- (void) setActiveMissile:(NSUInteger)value;
1018- (NSUInteger) dialMaxMissiles;
1019- (BOOL) dialIdentEngaged;
1020- (void) setDialIdentEngaged:(BOOL)newValue;
1021- (NSString *) specialCargo;
1022- (NSString *) dialTargetName;
1023- (ShipEntity *) missileForPylon:(NSUInteger)value;
1024- (void) safeAllMissiles;
1025- (void) selectNextMissile;
1026- (void) tidyMissilePylons;
1027- (BOOL) removeFromPylon:(NSUInteger) pylon;
1028- (BOOL) assignToActivePylon:(NSString *)identifierKey;
1029
1030- (void) clearAlertFlags;
1031- (int) alertFlags;
1032- (void) setAlertFlag:(int)flag to:(BOOL)value;
1033- (OOAlertCondition) alertCondition;
1034- (OOPlayerFleeingStatus) fleeingStatus;
1035
1036- (BOOL) mountMissile:(ShipEntity *)missile;
1037- (BOOL) mountMissileWithRole:(NSString *)role;
1038
1039- (OOEnergyUnitType) installedEnergyUnitType;
1040- (OOEnergyUnitType) energyUnitType;
1041
1042- (ShipEntity *) launchMine:(ShipEntity *)mine;
1043
1044- (BOOL) activateCloakingDevice;
1045- (void) deactivateCloakingDevice;
1046
1047- (double) scannerFuzziness;
1048
1049- (BOOL) weaponsOnline;
1050- (void) setWeaponsOnline:(BOOL)newValue;
1051
1052- (BOOL) fireMainWeapon;
1053
1054- (OOWeaponType) weaponForFacing:(OOWeaponFacing)facing;
1055- (OOWeaponType) currentWeapon;
1056- (NSArray *) currentLaserOffset;
1057
1058- (void) rotateCargo;
1059
1060- (BOOL) hasSufficientFuelForJump;
1061
1062- (BOOL) witchJumpChecklist:(BOOL)isGalacticJump;
1063- (void) enterGalacticWitchspace;
1064- (void) setJumpType:(BOOL)isGalacticJump;
1065
1066- (BOOL) takeInternalDamage;
1067
1068- (BOOL) endScenario:(NSString *)key;
1069
1070- (NSMutableArray *) roleWeights;
1071- (void) addRoleForAggression:(ShipEntity *)victim;
1072- (void) addRoleForMining;
1073- (void) addRoleToPlayer:(NSString *)role;
1074- (void) addRoleToPlayer:(NSString *)role inSlot:(NSUInteger)slot;
1075- (void) clearRoleFromPlayer:(BOOL)includingLongRange;
1076- (void) clearRolesFromPlayer:(float)chance;
1077- (NSUInteger) maxPlayerRoles;
1078- (void) updateSystemMemory;
1079
1080- (void) loseTargetStatus;
1081
1082- (void) docked;
1083
1084- (void) setGuiToStatusScreen;
1085- (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).
1086- (BOOL) setPrimedEquipment:(NSString *)eqKey showMessage:(BOOL)showMsg;
1087- (NSString *) primedEquipmentName:(NSInteger)offset;
1088- (NSString *) currentPrimedEquipment;
1089- (NSUInteger) primedEquipmentCount;
1090- (void) activatePrimableEquipment:(NSUInteger)index withMode:(OOPrimedEquipmentMode)mode;
1091- (NSString *) fastEquipmentA;
1092- (NSString *) fastEquipmentB;
1093- (void) setFastEquipmentA:(NSString *)eqKey;
1094- (void) setFastEquipmentB:(NSString *)eqKey;
1095
1096- (OOCreditsQuantity) adjustPriceByScriptForEqKey:(NSString *)eqKey withCurrent:(OOCreditsQuantity)price;
1097
1098- (NSArray *) cargoList;
1099//- (NSArray *) cargoListForScripting; // now in ShipEntity
1100- (unsigned) legalStatusOfCargoList;
1101
1102- (void) setGuiToSystemDataScreen;
1103- (void) setGuiToSystemDataScreenRefreshBackground: (BOOL) refreshBackground;
1104- (NSDictionary *) markedDestinations;
1105- (void) setGuiToLongRangeChartScreen;
1106- (void) setGuiToShortRangeChartScreen;
1107- (void) setGuiToChartScreenFrom: (OOGUIScreenID) oldScreen;
1108- (void) setGuiToLoadSaveScreen;
1109- (void) setGuiToGameOptionsScreen;
1110- (OOWeaponFacingSet) availableFacings;
1111- (void) setGuiToEquipShipScreen:(int)skip selectingFacingFor:(NSString *)eqKeyForSelectFacing;
1112- (void) setGuiToEquipShipScreen:(int)skip;
1113
1114- (void) setGuiToInterfacesScreen:(int)skip;
1115- (void) showInformationForSelectedInterface;
1116- (void) activateSelectedInterface;
1117
1118- (void) highlightEquipShipScreenKey:(NSString *)key;
1119- (void) showInformationForSelectedUpgrade;
1120- (void) showInformationForSelectedUpgradeWithFormatString:(NSString *)extraString;
1121- (BOOL) setWeaponMount:(OOWeaponFacing)chosen_weapon_facing toWeapon:(NSString *)eqKey;
1122- (BOOL) setWeaponMount:(OOWeaponFacing)facing toWeapon:(NSString *)eqKey inContext:(NSString *) context;
1123
1124- (BOOL) changePassengerBerths:(int) addRemove;
1125- (OOCargoQuantity) cargoQuantityForType:(OOCommodityType)type;
1126- (OOCargoQuantity) setCargoQuantityForType:(OOCommodityType)type amount:(OOCargoQuantity)amount;
1127- (void) calculateCurrentCargo;
1128- (void) setGuiToMarketScreen;
1129- (void) setGuiToMarketInfoScreen;
1130- (NSArray *) applyMarketFilter:(NSArray *)goods onMarket:(OOCommodityMarket *)market;
1131- (NSArray *) applyMarketSorter:(NSArray *)goods onMarket:(OOCommodityMarket *)market;
1132- (OOCommodityMarket *) localMarket;
1133
1134
1135- (void) setupStartScreenGui;
1136- (void) setGuiToIntroFirstGo:(BOOL)justCobra;
1137- (void) setGuiToOXZManager;
1138
1139- (void) noteGUIWillChangeTo:(OOGUIScreenID)toScreen;
1140- (void) noteGUIDidChangeFrom:(OOGUIScreenID)fromScreen to:(OOGUIScreenID)toScreen refresh: (BOOL) refresh;
1141- (void) noteGUIDidChangeFrom:(OOGUIScreenID)fromScreen to:(OOGUIScreenID)toScreen;
1142- (void) noteViewDidChangeFrom:(OOViewID)fromView toView:(OOViewID)toView;
1143
1144- (OOGUIScreenID) guiScreen;
1145
1146- (void) buySelectedItem;
1147
1148- (BOOL) tryBuyingCommodity:(OOCommodityType)type all:(BOOL)all;
1149- (BOOL) trySellingCommodity:(OOCommodityType)type all:(BOOL)all;
1150
1151- (OOSpeechSettings) isSpeechOn;
1152
1153- (void) addEquipmentFromCollection:(id)equipment; // equipment may be an array, a set, a dictionary whose values are all YES, or a string.
1154
1155- (void) getFined;
1156- (void) adjustTradeInFactorBy:(int)value;
1157- (int) tradeInFactor;
1158- (double) renovationCosts;
1159- (double) renovationFactor;
1160
1161
1162- (void) setDefaultViewOffsets;
1163- (void) setDefaultCustomViews;
1164- (Vector) weaponViewOffset;
1165
1166- (void) setUpTrumbles;
1167- (void) addTrumble:(OOTrumble *)papaTrumble;
1168- (void) removeTrumble:(OOTrumble *)deadTrumble;
1169- (OOTrumble **) trumbleArray;
1170- (NSUInteger) trumbleCount;
1171// loading and saving trumbleCount
1172- (id) trumbleValue;
1173- (void) setTrumbleValueFrom:(NSObject *)trumbleValue;
1174
1175- (float) trumbleAppetiteAccumulator;
1176- (void) setTrumbleAppetiteAccumulator:(float)value;
1177
1178- (void) mungChecksumWithNSString:(NSString *)str;
1179
1180- (NSString *)screenModeStringForWidth:(unsigned)inWidth height:(unsigned)inHeight refreshRate:(float)inRate;
1181
1182- (void) suppressTargetLost;
1183
1184- (void) setScoopsActive;
1185
1186- (void) clearTargetMemory;
1187- (NSMutableArray *) targetMemory;
1188- (BOOL) moveTargetMemoryBy:(NSInteger)delta;
1189
1190- (void) printIdentLockedOnForMissile:(BOOL)missile;
1191
1192- (void) applyYaw:(GLfloat) yaw;
1193
1194/* GILES custom viewpoints */
1195
1196// custom view points
1197- (Quaternion)customViewQuaternion;
1198- (void)setCustomViewQuaternion:(Quaternion)q1;
1199- (OOMatrix)customViewMatrix;
1200- (Vector)customViewOffset;
1201- (void)setCustomViewOffset:(Vector)offset;
1202- (Vector)customViewRotationCenter;
1203- (void)setCustomViewRotationCenter:(Vector)center;
1204- (void)customViewZoomOut:(OOScalar) rate;
1205- (void)customViewZoomIn: (OOScalar) rate;
1206- (void)customViewRotateLeft:(OOScalar) angle;
1207- (void)customViewRotateRight:(OOScalar) angle;
1208- (void)customViewRotateUp:(OOScalar) angle;
1209- (void)customViewRotateDown:(OOScalar) angle;
1210- (void)customViewRollLeft:(OOScalar) angle;
1211- (void)customViewRollRight:(OOScalar) angle;
1212- (void)customViewPanUp:(OOScalar) angle;
1213- (void)customViewPanDown:(OOScalar) angle;
1214- (void)customViewPanLeft:(OOScalar) angle;
1215- (void)customViewPanRight:(OOScalar) angle;
1216- (Vector)customViewForwardVector;
1217- (Vector)customViewUpVector;
1218- (Vector)customViewRightVector;
1219- (NSString *)customViewDescription;
1220- (void)resetCustomView;
1221- (void)setCustomViewData;
1222- (void)setCustomViewDataFromDictionary:(NSDictionary*) viewDict withScaling:(BOOL)withScaling;
1223- (HPVector) viewpointPosition;
1224- (HPVector) breakPatternPosition;
1225- (Vector) viewpointOffset;
1226- (Vector) viewpointOffsetAft;
1227- (Vector) viewpointOffsetForward;
1228- (Vector) viewpointOffsetPort;
1229- (Vector) viewpointOffsetStarboard;
1230
1231
1232- (NSDictionary *) missionOverlayDescriptor;
1233- (NSDictionary *) missionOverlayDescriptorOrDefault;
1234- (void) setMissionOverlayDescriptor:(NSDictionary *)descriptor;
1235
1236- (NSDictionary *) missionBackgroundDescriptor;
1237- (NSDictionary *) missionBackgroundDescriptorOrDefault;
1238- (void) setMissionBackgroundDescriptor:(NSDictionary *)descriptor;
1239- (OOGUIBackgroundSpecial) missionBackgroundSpecial;
1240- (void) setMissionBackgroundSpecial:(NSString *)special;
1241- (void) setMissionExitScreen:(OOGUIScreenID)screen;
1242- (OOGUIScreenID) missionExitScreen;
1243- (void) clearExtraMissionKeys;
1244- (void) setExtraMissionKeys:(NSDictionary *)keys;
1245
1246- (void) clearExtraGuiScreenKeys:(OOGUIScreenID)gui key:(NSString *)key;
1247- (BOOL) setExtraGuiScreenKeys:(OOGUIScreenID)gui definition:(OOJSGuiScreenKeyDefinition *)definition;
1248
1249
1250// Nasty hack to keep background textures around while on equip screens.
1251- (NSDictionary *) equipScreenBackgroundDescriptor;
1252- (void) setEquipScreenBackgroundDescriptor:(NSDictionary *)descriptor;
1253
1254- (BOOL) scriptsLoaded;
1255- (NSArray *) worldScriptNames;
1256- (NSDictionary *) worldScriptsByName;
1257
1258- (OOScript *) commodityScriptNamed:(NSString *)script;
1259
1260// *** World script events.
1261// In general, script events should be sent through doScriptEvent:..., which
1262// will forward to the world scripts.
1263- (BOOL) doWorldEventUntilMissionScreen:(jsid)message;
1264- (void) doWorldScriptEvent:(jsid)message inContext:(JSContext *)context withArguments:(jsval *)argv count:(uintN)argc timeLimit:(OOTimeDelta)limit;
1265
1266- (BOOL)showInfoFlag;
1267
1268- (void) setGalacticHyperspaceBehaviour:(OOGalacticHyperspaceBehaviour) galacticHyperspaceBehaviour;
1269- (OOGalacticHyperspaceBehaviour) galacticHyperspaceBehaviour;
1270- (void) setGalacticHyperspaceFixedCoords:(NSPoint)point;
1271- (void) setGalacticHyperspaceFixedCoordsX:(unsigned char)x y:(unsigned char)y;
1272- (NSPoint) galacticHyperspaceFixedCoords;
1273- (void) setWitchspaceCountdown:(int)spin_time;
1274
1275- (OOLongRangeChartMode) longRangeChartMode;
1276- (void) setLongRangeChartMode:(OOLongRangeChartMode) mode;
1277
1278- (BOOL) scoopOverride;
1279- (void) setScoopOverride:(BOOL)newValue;
1280- (void) setDockTarget:(ShipEntity *)entity;
1281
1282- (BOOL) clearedToDock;
1283- (void) setDockingClearanceStatus:(OODockingClearanceStatus) newValue;
1284- (OODockingClearanceStatus) getDockingClearanceStatus;
1285- (void) penaltyForUnauthorizedDocking;
1286
1287- (NSArray *) scannedWormholes;
1288
1289- (WormholeEntity *) wormhole;
1290- (void) setWormhole:(WormholeEntity *)newWormhole;
1291- (void) addScannedWormhole:(WormholeEntity*)wormhole;
1292
1293- (void) initialiseMissionDestinations:(NSDictionary *)destinations andLegacy:(NSArray *)legacy;
1294- (NSString *)markerKey:(NSDictionary*)marker;
1295- (void) addMissionDestinationMarker:(NSDictionary *)marker;
1296- (BOOL) removeMissionDestinationMarker:(NSDictionary *)marker;
1297- (NSMutableDictionary*) getMissionDestinations;
1298
1299- (NSMutableDictionary*) shipyardRecord;
1300
1301- (void) setLastShot:(NSArray *)shot;
1302
1303- (void) showShipModelWithKey:(NSString *)shipKey shipData:(NSDictionary *)shipData personality:(uint16_t)personality factorX:(GLfloat)factorX factorY:(GLfloat)factorY factorZ:(GLfloat)factorZ inContext:(NSString *)context;
1304
1305- (void) doGuiScreenResizeUpdates;
1306
1307/* Fractional expression of amount of entry inside a planet's atmosphere. 0.0f is out of atmosphere,
1308 1.0f is fully in and is normally associated with the point of ship destruct due to altitude.
1309*/
1310- (GLfloat) insideAtmosphereFraction;
1311
1312@end
1313
1314
1315/* Use PLAYER to refer to the shared player object in cases where it is
1316 assumed to exist (i.e., except during early initialization).
1317*/
1320{
1321 extern PlayerEntity *gOOPlayer;
1322#if OO_DEBUG
1323 NSCAssert(gOOPlayer != nil, @"PLAYER used when [PlayerEntity sharedPlayer] has not been called.");
1324#endif
1325 return gOOPlayer;
1326}
1327#define PLAYER OOGetPlayer()
1328
1329#define KILOGRAMS_PER_POD 1000
1330#define MAX_KILOGRAMS_IN_SAFE ((KILOGRAMS_PER_POD / 2) - 1)
1331#define GRAMS_PER_POD (KILOGRAMS_PER_POD * 1000)
1332#define MAX_GRAMS_IN_SAFE ((GRAMS_PER_POD / 2) - 1)
1333
1334
1335NSString *OODisplayRatingStringFromKillCount(unsigned kills);
1336NSString *KillCountToRatingAndKillString(unsigned kills);
1337NSString *OODisplayStringFromLegalStatus(int legalStatus);
1338
1341
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_DISPLAY
@ GUI_ROW_GAMEOPTIONS_BACK
@ GUI_ROW_GAMEOPTIONS_SHADEREFFECTS
@ GUI_ROW_GAMEOPTIONS_MUSIC
@ GUI_ROW_GAMEOPTIONS_SPACER_STICKMAPPER
@ 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