Wing Commander II
Reconstructed Win32 source (1996)
Loading...
Searching...
No Matches
fltsetup.c
Go to the documentation of this file.
1/*
2 * Spaceflight setup: shapes, cockpit, constellations and music.
3 *
4 * Retail object 0x4568E0-0x4589CF (link order; see docs/ORDER.md).
5 */
6#include "game.h"
7
8/* The retail heap lets a copy of the largest cockpit-view packet read through
9 * the shorter cached packets. Their trailing bytes are not part of the shape;
10 * copy only the loaded packet on the bounds-checked native heap. */
11#define COCKPIT_VIEW_COPY_BYTES(section) \
12 ((unsigned short)g_nCockpitBackgroundBytes)
13
14/* Function start: 0x4568E0 */
16 short flags, char *defaultFileName)
17{
18 while (resources->resource != 0) {
19 if (*resources->resource == 0) {
20 if (resources->fileName == 0) {
22 defaultFileName, resources->section,
23 (unsigned short)(flags | 0x40));
24 } else {
26 resources->fileName, resources->section,
27 (unsigned short)(flags | 0x40));
28 }
29 if (*resources->resource == 0)
30 return 0;
31 }
32 resources++;
33 }
34 return 1;
35}
36
37/* Function start: 0x456988 */
39 unsigned short releaseFlags)
40{
41 while (resources->resource != 0) {
42 if (*resources->resource != 0)
43 FreePacketAndClear(resources->resource, releaseFlags);
44 resources++;
45 }
46}
47
48void initialize_cockpit(signed char mode);
49
50/* Function start: 0x4569C8 */
52 short flags, int availableBytes,
53 char *defaultFileName)
54{
55 int packetSize;
56
57 while (resources->resource != 0) {
58 if (*resources->resource == 0) {
59 packetSize = (int)GetNamedPacketSize(
60 defaultFileName, resources->section);
61 if (packetSize < availableBytes) {
63 defaultFileName, resources->section, flags);
64 if (*resources->resource == 0)
65 return availableBytes;
66 else
67 availableBytes -= packetSize;
68 }
69 }
70 resources++;
71 }
72 return availableBytes;
73}
74
75/* Function start: 0x456A68 */
77{
78 short black[3];
79 short index;
80
81 black[0] = 0;
82 black[1] = 0;
83 black[2] = 0;
84 for (index = 0; index < 6; index++) {
85 memcpy(g_9_aasCockpitHitPaletteFades[index], black,
86 sizeof(black));
87 SetPaletteEntry((short)(index + 0xf9),
89 }
90 memcpy(g_1_asSpacePaletteFade, black, sizeof(black));
94}
95
96void ClearViewport(Viewport *viewport, short colour);
97
98#pragma function(strcat, strcpy, strlen)
99/* Function start: 0x456B1A */
100void initialize_cockpit(signed char mode)
101{
102 char resourceText[4];
103 Viewport savedScreen;
104 unsigned char *backdrop;
105
106 backdrop = 0;
107
108 if (message_showing())
109 EndCommMenu();
110
114 else
116 return;
117 }
118
120 savedScreen = g_101_stScrViewInfo;
125
127 strcpy(g_7_szCockpitAssetFilenameText, "pcship.v");
128 itoa((int)g_aObjectTypeData[
129 g_acObjectType[0]].resourceType,
130 resourceText, 10);
131 if (strlen(resourceText) == 1)
133 strcat(g_7_szCockpitAssetFilenameText, resourceText);
134
135 switch (mode) {
136 case 0:
137 if (g_2_apCockpitViewShapes[0] != 0) {
139 (unsigned char *)IdentityDword(
144 } else {
148 }
165 }
166 if (g_2_apCockpitShipShapes[0] != 0) {
168 if (g_nCockpitDisplayMode == 0) {
171 0, 0, g_2_apCockpitShipShapes[0], 0);
172 } else if (g_nCockpitDisplayMode == 0) {
175 0, 0, g_2_apCockpitShipShapes[0], 0);
176 }
177 }
178 } else {
179 backdrop = LoadNamedPacket(
181 0, 0, 0, 1);
182 if (backdrop == 0) {
185 backdrop = FetchDiskPacketRetrying(
187 if (g_nCockpitDisplayMode == 0) {
190 0, 0, backdrop, 0);
191 }
193 0) {
194 if (g_nCockpitDisplayMode == 0) {
197 0, 0, backdrop, 0);
198 } else if (g_nCockpitDisplayMode == 0) {
201 0, 0, backdrop, 0);
202 }
203 }
204 ReleasePacketHandle(backdrop);
205 }
208 if (g_nCockpitDisplayMode == 0)
215 } else if (g_nCockpitDisplayMode == 0) {
217 }
221 update_VDUs();
224 if (g_nCockpitDisplayMode == 0)
227 break;
228 case 1:
229 if (g_2_apCockpitViewShapes[1] != 0) {
231 (unsigned char *)IdentityDword(
236 } else {
240 }
241 if (g_2_apCockpitShipShapes[1] != 0) {
242 if (g_nCockpitDisplayMode == 0)
245 } else {
246 backdrop = FetchDiskPacketRetrying(
248 if (g_nCockpitDisplayMode == 0)
249 DrawSpriteDefault(&g_101_stScrViewInfo, 0, 0, backdrop, 0);
250 ReleasePacketHandle(backdrop);
251 }
253 break;
254 case 2:
255 if (g_nCurrentView == 4) {
256 if (g_2_apCockpitViewShapes[1] != 0) {
258 (unsigned char *)IdentityDword(
264 } else {
268 }
269 if (g_2_apCockpitShipShapes[1] != 0) {
270 if (g_nCockpitDisplayMode == 0) {
272 &g_101_stScrViewInfo, 0, 0,
274 }
275 } else {
276 backdrop = FetchDiskPacketRetrying(
278 if (g_nCockpitDisplayMode == 0) {
281 0, 0, backdrop, 0);
282 }
283 ReleasePacketHandle(backdrop);
284 }
285 } else {
286 if (g_2_apCockpitViewShapes[2] != 0) {
288 (unsigned char *)IdentityDword(
294 } else {
298 }
299 if (g_2_apCockpitShipShapes[2] != 0) {
300 if (g_nCockpitDisplayMode == 0) {
302 &g_101_stScrViewInfo, 0, 0,
304 }
305 } else {
306 backdrop = FetchDiskPacketRetrying(
308 if (g_nCockpitDisplayMode == 0) {
311 0, 0, backdrop, 0);
312 }
313 ReleasePacketHandle(backdrop);
314 }
315 }
317 break;
318 case 3:
319 if (g_2_apCockpitViewShapes[3] != 0) {
321 (unsigned char *)IdentityDword(
326 } else {
330 }
331 if (g_2_apCockpitShipShapes[3] != 0) {
332 if (g_nCockpitDisplayMode == 0)
335 } else {
336 backdrop = FetchDiskPacketRetrying(
338 if (g_nCockpitDisplayMode == 0)
339 DrawSpriteDefault(&g_101_stScrViewInfo, 0, 0, backdrop, 0);
340 ReleasePacketHandle(backdrop);
341 }
343 break;
344 case 4:
346 break;
347 case 5:
349 break;
350 case 6:
352 break;
353 case 7:
354 break;
355 }
356
357 if (g_nCurrentView == 4) {
358 switch (mode) {
359 case 1:
362 break;
363 case 2:
366 break;
367 case 3:
370 break;
371 }
375 if (g_nCockpitDisplayMode == 0)
377 }
378
381 (unsigned short)(g_nScreenWidth - 1),
382 (unsigned short)(g_nScreenHeight - 1));
384 g_101_stScrViewInfo = savedScreen;
385}
386
387/* Function start: 0x457434 */
389 const ConstellationObjectDefinition *definition, short object)
390{
391 char packetName[13] = "planets.v0";
392 FixedVector position;
393 char campaignNumber[4];
394
395 strcat(packetName,
396 itoa((int)g_nSelectedCampaignSlot,
397 campaignNumber, 10));
399 init_ijk(69);
400 alter_yaw((short)-definition->yaw, 69);
401 alter_pitch((short)-definition->pitch, 69);
402 alter_roll(definition->roll, 69);
404 0x753000, &position);
405 g_aShipPosition[object] = position;
406 g_asObjectScreenAngle[object] = 0;
407 g_asObjectViewFrame[object] =
408 g_asObjectScreenAngle[object];
409 g_asObjectType[object] =
410 g_asObjectViewFrame[object];
411 g_asObjectScreenScale[object] = 0xff;
412 g_apObjectShape[object] =
413 FetchDiskPacketRetrying(packetName,
414 (short)(definition->shapePacket + 1), 0);
415}
416
417/* Function start: 0x457587 */
418void FreeConstellationObject(short object)
419{
421 remove_object(object);
422}
423
424/* Function start: 0x4575B4 */
425void init_constellation(short scene)
426{
427 short slot;
428 short sceneIndex;
429 short object;
430
431 if (g_pConstellationSprite == 0) {
433 FetchDiskPacketRetrying("planets.v00", 0, 0);
434 }
435 sceneIndex = (short)(scene - 1);
437 return;
438 if (sceneIndex >= 0) {
439 for (slot = 0; slot < 4; slot++) {
442 [sceneIndex][slot].shapePacket != -1) {
443 object = find_vacant_3d_object();
444 if (object != -1) {
448 [sceneIndex][slot],
449 object);
450 }
451 g_asConstellationObjectIndices[slot] = object;
452 } else {
454 }
455 }
456 }
457}
458
459/* Function start: 0x4576AB */
461{
462 short object;
463 short slot;
464
466 for (slot = 0; slot < 4; slot++) {
467 object = g_asConstellationObjectIndices[slot];
468 if (object != -1) {
471 }
472 }
473}
474
475/* Function start: 0x457720 */
503
504/* Function start: 0x4577D7 */
505/* WC2 passes the player's ship type; the body reads it from the global
506 * instead and ignores the argument. */
507void InitializeCockpitResources(short shipType)
508{
510 short displayFrame;
511 short maxSize;
512 short gunDisplay;
513 char resourceNumber[4];
514 int packetSize;
515 int slot;
516
518 strcpy(g_7_szCockpitAssetFilenameText, "pcship.v");
519 itoa((int)g_aObjectTypeData[
520 g_acObjectType[0]].resourceType,
521 resourceNumber, 10);
522 if (strlen(resourceNumber) == 1)
524 strcat(g_7_szCockpitAssetFilenameText, resourceNumber);
528 if (g_1_nResourcePaletteState == 0) {
534 }
536 &layout, 0);
538 for (slot = 0; slot < 4; slot++)
540 layout.damagePositions[slot];
541 for (slot = 0; slot < 7; slot++)
542 g_asCockpitLightX[slot] = layout.lightX[slot];
543 for (slot = 0; slot < 7; slot++)
544 g_asCockpitLightY[slot] = layout.lightY[slot];
545 for (slot = 0; slot < 7; slot++)
547 layout.lightOffFrame[slot];
548 for (slot = 0; slot < 7; slot++)
550 layout.lightOnFrame[slot];
551 for (slot = 0; slot < 8; slot++)
552 g_aCockpitBarDefinitions[slot] = layout.bars[slot];
564 for (slot = 0; slot < 16; slot++)
566 layout.weaponDisplayPositions[slot];
569
571 maxSize = 0;
572 for (gunDisplay = 4; gunDisplay <= 7; gunDisplay++) {
573 packetSize = (int)GetNamedPacketSize(
575 maxSize = MaxShort(maxSize, (short)packetSize);
576 }
580 (int)g_nCockpitBackgroundBytes, 0x40);
583 }
584
585 if (HasShipCockpitGunDisplay(0) != 0) {
587 if (g_12_nGunDisplayCount == 3)
589 for (gunDisplay = 0; gunDisplay < g_12_nGunDisplayCount; gunDisplay++) {
590 g_apCockpitVduOverlayShapes[gunDisplay] =
593 (short)(gunDisplay + 0x0e), 0);
594 }
597 (short)(g_12_nGunDisplayCount + 0x0e),
600 }
601
603 init_vdus();
607 (signed char)g_cSecondaryViewBufferColour);
612 (unsigned short)g_aCockpitReadoutOrigins[0].x,
613 (unsigned short)g_aCockpitReadoutOrigins[0].y);
616 (unsigned short)g_aCockpitReadoutOrigins[1].x,
617 (unsigned short)g_aCockpitReadoutOrigins[1].y);
620 (unsigned short)g_aCockpitReadoutOrigins[2].x,
621 (unsigned short)g_aCockpitReadoutOrigins[2].y);
624 (unsigned short)g_aCockpitReadoutOrigins[3].x,
625 (unsigned short)g_aCockpitReadoutOrigins[3].y);
627
635 (unsigned short)(g_stPilotHandBounds.right -
637 (unsigned short)(g_stPilotHandBounds.bottom -
645 }
646
651 (unsigned int)MeasureShapeFrameStorage(
653 0x40);
657 if (g_1_pDashWeaponPicture != 0) {
658 maxSize = (short)MeasureShapeFrameStorage(
661 AllocateTaggedMemory((int)maxSize, 0);
662 maxSize = 0;
663 for (displayFrame = 0x20; displayFrame < 0x29; displayFrame++) {
664 maxSize = MaxShort(
665 maxSize,
667 g_1_pDashWeaponPicture, displayFrame));
668 }
669 if (maxSize != 0)
671 AllocateTaggedMemory((int)maxSize, 0);
672 }
675 (unsigned int)MeasureShapeFrameStorage(
677 0);
678 }
679 if (g_pCockpitExplosionShape != 0) {
680 maxSize = 0;
681 for (displayFrame = 0; displayFrame < 8; displayFrame++) {
682 maxSize = MaxShort(
683 maxSize,
685 g_pCockpitExplosionShape, displayFrame));
686 }
687 if (maxSize != 0)
689 AllocateTaggedMemory((int)maxSize, 0);
690 }
692 FetchDiskPacketRetrying("message.v00", 0, 0);
694 (unsigned int)MeasureShapeFrameStorage(
696 0);
698 g_bRadioSilence = 0;
700 for (g_nObjectType62Index = 0;
701 g_nObjectType62Index <= 0x3f;
704 g_nObjectType62Index].field_18 == 0x3e)
705 break;
706 }
707 for (g_nObjectType63Index = 0;
708 g_nObjectType63Index <= 0x3f;
711 g_nObjectType63Index].field_18 == 0x3f)
712 break;
713 }
715 HasShipCockpitGunDisplay(0) != 0) {
718 LoadNamedPacket("objects.vga", 0x15, 0, 4, 0, 1);
721 LoadNamedPacket("objects.vga", 0x16, 0, 4, 0, 1);
723 g_nObjectType62Index].shapeSet == 0 ||
725 g_nObjectType63Index].shapeSet == 0) {
728 g_nObjectType62Index].shapeSet,
729 4);
732 g_nObjectType63Index].shapeSet,
733 4);
734 }
735 }
736 for (gunDisplay = 0; gunDisplay < 50; gunDisplay++) {
738 }
739}
740
741/* Function start: 0x458196 */
742void free_cockpit(void)
743{
744 char shipTypeText[4];
745 short packet;
746
748 return;
749 else
755 }
760 if (g_nObjectType62Index != -1)
763 g_nObjectType62Index].shapeSet,
764 4);
765 if (g_nObjectType63Index != -1)
768 g_nObjectType63Index].shapeSet,
769 4);
774 }
775 strcpy(g_7_szCockpitAssetFilenameText, "pcship.v");
776 itoa((int)g_aObjectTypeData[
777 g_acObjectType[0]].resourceType,
778 shipTypeText, 10);
779 if (strlen(shipTypeText) == 1)
781 strcat(g_7_szCockpitAssetFilenameText, shipTypeText);
782 if (g_1_nResourcePaletteState == 0) {
785 }
799 }
800 for (packet = 0; packet < 50; packet++) {
801 if (g_48_apCommunicationTextPacketsTable[packet] != 0) {
805 }
806 }
807}
808
809/* Function start: 0x458467 */
810void init_3Space_objects(short scene)
811{
812 short slot;
813
814 if (g_b3SpaceObjectsActive == 1)
815 return;
816 else
827 for (slot = 0; slot <= 4; slot++)
828 g_aObjectResourceSlots[slot].resourceType = -1;
829 init_constellation(scene);
831}
832
833/* Function start: 0x458532 */
835{
837 LoadShapeSet(g_aCommon3SpaceResources, 0, "objects.vga");
850 free_ship(4);
851 load_ship(1, 0x10, OBJECT_CLASS_MISSILE, 4);
869 if (g_1_nResourcePaletteState == 0) {
871 FetchDiskPacketRetrying("missile.v00", 0, 4);
872 }
873 if (g_pGenericMissileShape != 0) {
875 FetchDiskPacketRetrying("missile.v00", 1, 0);
876 }
877 }
878}
879
880/* Function start: 0x45865D */
882{
883 short i;
884
885 for (i = 0; i < 70; i++)
886 remove_object(i);
887}
888
889/* Function start: 0x458698 */
907
908/* Function start: 0x458716 */
933
934/* Function start: 0x4587E0 */
942
943/* Function start: 0x458806 */
945{
948 if (g_aLimitedMusicBuffers[0].state != -1) {
950 g_aLimitedMusicBuffers[0].state].packet = 0;
951 g_aLimitedMusicBuffers[0].state = -1;
952 }
953 if (g_aLimitedMusicBuffers[1].state != -1) {
955 g_aLimitedMusicBuffers[1].state].packet = 0;
956 g_aLimitedMusicBuffers[1].state = -1;
957 }
958}
959
960/* Function start: 0x45887B */
961void PreloadMusicTrack(int track)
962{
963 if (g_nMusicDriverMode == 1 &&
964 g_aTuneResources[track].packet == 0) {
965 g_aTuneResources[track].packet =
966 FetchDiskPacketRetrying("music.r00", (short)track, 0);
967 }
968 if (g_nMusicDriverMode == 2 &&
969 g_aTuneResources[track].packet == 0) {
970 g_aTuneResources[track].packet =
971 FetchDiskPacketRetrying("music.a00", (short)track, 0);
972 }
973}
974
975/* Function start: 0x45890E */
976void ReleaseMusicTrack(int track)
977{
978 if (g_nMusicDriverMode == 1 ||
979 g_nMusicDriverMode == 2) {
980 if (g_98_nMemConfiguration == 1) {
981 if (g_aTuneResources[track].packet ==
982 g_aLimitedMusicBuffers[0].buffer) {
983 g_aLimitedMusicBuffers[0].state = -1;
984 } else if (g_aTuneResources[track].packet ==
985 g_aLimitedMusicBuffers[1].buffer) {
986 g_aLimitedMusicBuffers[1].state = -1;
987 } else {
989 &g_aTuneResources[track].packet, 0);
990 }
991 } else {
993 &g_aTuneResources[track].packet, 0);
994 }
995 }
996}
997
998/* This unit's initialized data, after its functions so that it does not
999 * move the functions' symbol keys. */
1000short g_nCockpitBackgroundBytes = 0; /* 0x0049c720 */
1002 { &g_aObjectTypeData[43].shapeSet, 0, 0 },
1003 { &g_aObjectTypeData[36].shapeSet, 0, 1 },
1004 { &g_aObjectTypeData[7].shapeSet, 0, 6 },
1005 { &g_aObjectTypeData[9].shapeSet, 0, 7 },
1006 { &g_aObjectTypeData[8].shapeSet, 0, 8 },
1007 { &g_aObjectTypeData[39].shapeSet, 0, 9 },
1008 { &g_aObjectTypeData[41].shapeSet, 0, 10 },
1009 { &g_aObjectTypeData[40].shapeSet, 0, 11 },
1010 { &g_aObjectTypeData[42].shapeSet, 0, 12 },
1011 { &g_aObjectTypeData[10].shapeSet, 0, 18 },
1012 { 0, 0, 0 }
1013}; /* 0x0049c728 */
1015 { &g_aObjectTypeData[21].shapeSet, 0, 15 },
1016 { &g_aObjectTypeData[20].shapeSet, 0, 20 },
1017 { &g_aObjectTypeData[45].shapeSet, 0, 14 },
1018 { &g_aObjectTypeData[37].shapeSet, 0, 2 },
1019 { &g_aObjectTypeData[38].shapeSet, 0, 3 },
1020 { &g_aObjectTypeData[35].shapeSet, 0, 4 },
1021 { &g_aObjectTypeData[31].shapeSet, 0, 5 },
1022 { 0, 0, 0 }
1023}; /* 0x0049c798 */
1025 { &g_66_pCabinHudImage, 0, 0 },
1026 { &g_pPilotHandAnimationShapePtr, "pilotanm.vga", 3 },
1027 { (unsigned char **)&g_pCockpitExplosionShape, 0, 5 },
1028 { &g_18_pCockpitIndicatorShape, 0, 4 },
1029 { 0, 0, 0 }
1030}; /* 0x0049c7e8 */
1032 { &g_4_pCockpitPanelShape, 0, 10 },
1033 { &g_66_pCabinHudImage, "cockpit.vga", 0 },
1034 { &g_1_pDashWeaponPicture, 0, 12 },
1035 { &g_18_pCockpitIndicatorShape, "cockpit.vga", 4 },
1036 { 0, 0, 0 }
1037}; /* 0x0049c820 */
1040 { &g_4_pCockpitPanelShape, 0, 10 },
1041 { &g_1_pDashWeaponPicture, 0, 12 },
1042 { &g_2_apCockpitShipShapes[0], 0, 0 },
1043 { &g_2_apCockpitShipShapes[1], 0, 1 },
1044 { &g_2_apCockpitShipShapes[2], 0, 2 },
1045 { &g_2_apCockpitShipShapes[3], 0, 3 },
1046 { 0, 0, 0 }
1047}; /* 0x0049c858 */
1049 { &g_2_apCockpitViewShapes[0], 0, 4 },
1050 { &g_2_apCockpitViewShapes[1], 0, 5 },
1051 { &g_2_apCockpitViewShapes[2], 0, 6 },
1052 { &g_2_apCockpitViewShapes[3], 0, 7 },
1053 { 0, 0, 0 }
1054}; /* 0x0049c8a8 */
1055int g_nUnusedFltsetupWord1 = 1; /* 0x0049c8dc */
1057 -1, -1, -1, -1
1058}; /* 0x0049c8e0 */
1059short g_bCockpitResourcesActive = 0; /* 0x0049c8e8 */
1060short g_b3SpaceObjectsActive = 0; /* 0x0049c8ec */
1061unsigned char *g_pGenericMissileShape = 0; /* 0x0049c8f0 */
1062unsigned char *g_pGenericMissileExhaustShape = 0; /* 0x0049c8f4 */
1063
1064/* Linker commons defined here. LINK lays a unit's commons out by the
1065 * identifiers' hash keys, so these spellings follow the original addresses. */
1066char g_7_szCockpitAssetFilenameText[16]; /* 0x005d1030 */
1067unsigned char *g_2_apCockpitViewShapes[4]; /* 0x005d1040 */
1069unsigned char *g_2_apCockpitShipShapes[4]; /* 0x005d1070 */
1070int g_nUnusedFltsetupWord2[2]; /* 0x005d1080 */ /* never referenced */
1071unsigned char *g_pCockpitViewFrameInfo; /* 0x005d1088 */
int g_nUnusedFltsetupWord1
Definition fltsetup.c:1055
int g_nUnusedFltsetupWord2[2]
Definition fltsetup.c:1070
#define COCKPIT_VIEW_COPY_BYTES(section)
Definition fltsetup.c:11
void set_up_screen_viewport(signed char mode)
Definition eventmgr.c:1820
void load_ship(short resourceType, short objectType, short objectClass, short slot)
Definition mission.c:415
short HasShipCockpitGunDisplay(short ship)
Definition ship.c:106
short MaxShort(short a, short b)
Definition disk.c:36
void initialize_view_buffer(void)
Definition main.c:217
void SetViewportRect(Viewport *viewport, unsigned short left, unsigned short top, unsigned short right, unsigned short bottom)
Definition viewrect.c:9
void InitializeCockpitResources(short shipType)
Definition fltsetup.c:507
void InitializeTextContextFromFont(TextContext *context, short fontIndex, unsigned char colour, signed char background)
Definition disk.c:254
void SetPaletteEntry(short index, short *rgb)
Definition gr.c:676
void free_ship(short slot)
Definition mission.c:604
void remove_object(short obj)
Definition geom.c:858
void alter_pitch(short angle, short obj)
Definition geom.c:504
short AllocateViewport(Viewport *viewport, short clearColour, short flags)
Definition vpalloc.c:32
void DosMemmove(void *dst, const void *src, unsigned short n)
void FinalizeTargetCameraViewHook(void)
Definition turret.c:1228
void free_cockpit(void)
Definition fltsetup.c:742
void init_vdus(void)
Definition fltsetup.c:476
void free_viewport(Viewport *viewport)
Definition vpfree.c:10
void free_inflight_music(void)
Definition fltsetup.c:944
void EndCommMenu(void)
Definition comm.c:441
void InitializeConstellationObject(const ConstellationObjectDefinition *definition, short object)
Definition fltsetup.c:388
void clear_cockpit_damage(void)
Definition cockpt.c:3201
void ResetPilotHandAnimation(void)
Definition cockpt.c:3102
void explosion_draw(int useBackgroundViewport)
Definition cockpt.c:3212
short LoadShapeSet(PacketResourceDescriptor *resources, short flags, char *defaultFileName)
Definition fltsetup.c:15
void load_common_3Space_objects(void)
Definition fltsetup.c:834
void alter_roll(short angle, short obj)
Definition geom.c:520
void SetTextContext(TextContext *context)
Definition eventmgr.c:179
void ScaleFixedVector(FixedVector *vector, int scale, FixedVector *result)
Definition geom.c:237
long GetNamedPacketSize(const char *filename, short section)
Definition eventmgr.c:2164
void ReleaseTextFont(short fontIndex)
Definition disk.c:274
void reset_cockpit(void)
Definition cockpt.c:488
void ReportFatalErrorCode(const char *errorCode)
Definition message.c:29
void init_ijk(short obj)
Definition geom.c:453
void DrawSpriteDefault(Viewport *viewport, short x, short y, unsigned char *shape, short frame)
Definition gr.c:682
void * LoadNamedPacket(const char *filename, short section, void *destination, unsigned short flags, void *decompressionWorkspace, int registerHandle)
Definition eventmgr.c:2170
short CountShipCockpitGunDisplays(short ship)
Definition turret.c:659
void StopMusicUnlessSuppressed(void)
Definition music.c:160
void clear_head_up_display(void)
Definition cockpt.c:1577
void ReleaseMusicTrack(int track)
Definition fltsetup.c:976
void InvalidateVduMode(short i)
Definition cockpt.c:714
void ClearHudGunReadouts(void)
Definition cockpt.c:326
void FreeConstellationObject(short object)
Definition fltsetup.c:418
void free_3Space_objects(void)
Definition fltsetup.c:909
int LoadPacketResourceList(PacketResourceDescriptor *resources, short flags, int availableBytes, char *defaultFileName)
Definition fltsetup.c:51
void ResetTargetCameraView(void)
Definition turret.c:646
void init_3Space_objects(short scene)
Definition fltsetup.c:810
void * AllocateTaggedMemory(unsigned int size, short flags)
Definition memapi.c:92
void * FetchDiskPacketRetrying(char *fileName, short section, short flags)
Definition disk.c:187
void free_3Space(void)
Definition fltsetup.c:890
void alter_yaw(short angle, short obj)
Definition geom.c:512
void WaitForVerticalBlankThunk(void)
Definition eventmgr.c:189
void ResetCockpitPaletteEntries(void)
Definition fltsetup.c:76
void FreeShapeSet(PacketResourceDescriptor *resources, unsigned short releaseFlags)
Definition fltsetup.c:38
void ClearViewport(Viewport *viewport, short colour)
Definition gr.c:1027
void init_inflight_music(void)
Definition fltsetup.c:935
void * LoadPacketIntoBuffer(char *fileName, short section, void *destination, int registerHandle)
Definition disk.c:141
int MeasureShapeFrameStorage(unsigned char *shape, short frame)
Definition eventmgr.c:384
short find_vacant_3d_object(void)
Definition geom.c:841
void ResetScannerContacts(void)
Definition cockpt.c:1567
void remove_all_3d_objects(void)
Definition fltsetup.c:881
unsigned int InitializeCockpitReadout(signed char slot, TextContext *context)
Definition cockpt.c:237
void initialize_cockpit(signed char mode)
Definition fltsetup.c:100
void free_constellation(void)
Definition fltsetup.c:460
void set_mode(short i, int state)
Definition cockpt.c:637
void init_constellation(short scene)
Definition fltsetup.c:425
void ReleasePacketHandle(void *handle)
Definition memapi.c:108
void SetTextCursor(unsigned short a, unsigned short b)
Definition eventmgr.c:172
void free_view_buffer(void)
Definition main.c:208
void FreePacketAndClear(void *slot, unsigned short releaseFlags)
Definition disk.c:45
void update_VDUs(void)
Definition cockpt.c:3539
void FreeCommDisplayResources(void)
Definition comm.c:422
void remove_all_hazards(void)
Definition fields.c:83
void PreloadMusicTrack(int track)
Definition fltsetup.c:961
DwordPtr IdentityDword(DwordPtr value)
Definition eventmgr.c:1491
void CopyViewportContents(Viewport *source, Viewport *destination)
Definition gr.c:995
short message_showing(void)
Definition cockpt.c:726
Shared Win32 declarations, types and library interfaces.
unsigned int DwordPtr
Definition game.h:45
#define OBJECT_DATA_O_RING
Definition game_data.h:1628
#define OBJECT_DATA_SPICULUM_IR
Definition game_data.h:1612
#define OBJECT_DATA_PILUM_FF
Definition game_data.h:1611
#define OBJECT_DATA_BURNING_DEBRIS
Definition game_data.h:1627
#define OBJECT_DATA_GIRDER_CHUNK
Definition game_data.h:1623
#define OBJECT_DATA_DART_DF
Definition game_data.h:1609
#define OBJECT_DATA_EJECTED_PILOT
Definition game_data.h:1634
#define OBJECT_DATA_PIPE
Definition game_data.h:1629
#define OBJECT_DATA_SHIP_TUBING
Definition game_data.h:1624
@ OBJECT_CLASS_PLANET
Definition game_data.h:40
@ OBJECT_CLASS_MISSILE
Definition game_data.h:48
short g_nObjectType62Index
Definition ship.c:12
short g_asObjectScreenAngle[SPACE_OBJECT_COUNT]
Definition viewrect.c:97
CockpitScannerGeometry g_stCockpitScannerGeometry
Definition cockpt.c:23
PacketResourceDescriptor g_aCommon3SpaceResources[11]
Definition fltsetup.c:1001
unsigned char * g_pHudMessageFrameShape
Definition cockpt.c:97
ShortPoint g_aCockpitDamagePositions[4]
Definition cockpt.c:14
short g_bCockpitDamageFrame0Shown
Definition cockpt.c:105
unsigned char * g_apCockpitVduOverlayShapes[2]
Definition personnel.c:9
short g_8_nGunDisplaySlot
Definition turret.c:1288
short g_nExternalViewShip
Definition viewrect.c:74
unsigned char * g_apObjectShape[SPACE_OBJECT_COUNT]
Definition viewrect.c:100
unsigned char * g_4_pCockpitPanelShape
Definition message.c:236
unsigned char * g_pNavLocationText
Definition nav.c:43
short g_12_nGunDisplayCount
Definition turret.c:1286
unsigned char * g_pCockpitBackgroundPacket
Definition personnel.c:8
int g_nCockpitDisplayMode
Definition main.c:1929
ShortPoint g_stPilotHandOrigin
Definition cockpt.c:25
unsigned char * g_18_pCockpitIndicatorShape
Definition message.c:229
PacketResourceDescriptor g_aCockpitShipShapeResources[8]
Definition fltsetup.c:1038
signed char g_acCockpitLightOnFrame[7]
Definition cockpt.c:18
ShortPoint g_aCockpitReadoutOrigins[4]
Definition cockpt.c:20
int g_nPassingShipSndCooldown
Definition music.c:609
int g_nCurrentView
Definition spc.c:11
unsigned char * g_pConstellationSprite
Definition message.c:230
short g_nPlayerCollisionObject
Definition viewrect.c:78
unsigned char * g_pCockpitExplosionBackground
Definition cockpt.c:41
short g_nObjectType63Index
Definition ship.c:13
short g_aeObjectClass[SPACE_OBJECT_COUNT]
Definition viewrect.c:125
ShortPoint g_stHudMessageOrigin
Definition cockpt.c:13
short g_asObjectType[SPACE_OBJECT_COUNT]
Definition viewrect.c:124
ShortRect g_stPilotHandBounds
Definition cockpt.c:24
PacketResourceDescriptor g_aCockpitViewShapeResources[5]
Definition fltsetup.c:1048
short g_9_aasCockpitHitPaletteFades[6][3]
Definition message.c:235
unsigned char * g_2_apCockpitViewShapes[4]
Definition fltsetup.c:1067
signed char g_acCockpitLightOffFrame[7]
Definition cockpt.c:17
Viewport g_stPilotHandViewportRecord
Definition message.c:233
short g_bCockpitResourcesActive
Definition fltsetup.c:1059
unsigned char * g_pPilotHandAnimationShapePtr
Definition message.c:232
Viewport g_9_stCockpitMeterPort
Definition cockpt.c:3833
ObjectTypeData g_aObjectTypeData[OBJECT_DATA_COUNT]
Definition campglob.c:310
PacketResourceDescriptor g_aMissionResourceDescriptors[8]
Definition fltsetup.c:1014
short g_nCombatMusicActive
Definition music.c:542
unsigned char * g_1_pDashWeaponPicture
Definition cockpt.c:3844
FixedVector g_aShipForwardVector[SPACE_OBJECT_COUNT]
Definition viewrect.c:107
signed char g_bRadioSilence
Definition comm.c:14
unsigned char * g_66_pCabinHudImage
Definition cockpt.c:3834
int g_98_nMemConfiguration
Definition startup.c:588
unsigned char * g_pCockpitHudBackground
Definition cockpt.c:42
unsigned char * g_pGenericMissileShape
Definition fltsetup.c:1061
int g_9_nTargetCameraOverlayMode
Definition turret.c:1285
char g_7_szCockpitAssetFilenameText[16]
Definition fltsetup.c:1066
short g_nSelectedCampaignSlot
Definition campaign.c:354
unsigned char * g_pCommVduFrameResource
Definition comm.c:17
int g_anLastDrawnVduMode[3]
Definition viewrect.c:82
volatile short g_nCockpitExplosionFrame
Definition cockpt.c:44
short g_nInitialFlightMusicPending
Definition music.c:541
short g_asCockpitLightX[7]
Definition cockpt.c:15
unsigned char * g_pGenericMissileExhaustShape
Definition fltsetup.c:1062
unsigned char * g_pReleaseWeaponDisplayBackground
Definition cockpt.c:48
short g_b3SpaceObjectsActive
Definition fltsetup.c:1060
char g_6_szDefaultTextBufferText[0xc8]
Definition message.c:228
short g_nSpaceFrame
Definition viewrect.c:32
short g_asObjectScreenScale[SPACE_OBJECT_COUNT]
Definition viewrect.c:103
short g_bMissileCameraEnabled
Definition viewrect.c:93
short g_nCockpitBackgroundBytes
Definition fltsetup.c:1000
short g_nRenderedSpaceFrame
Definition viewrect.c:33
Viewport g_3_stDashViewport
Definition cockpt.c:3829
unsigned char g_cSecondaryViewBufferColour
Definition startup.c:544
short g_nMusicDriverMode
Definition music.c:522
Viewport g_stPilotHandBackgroundViewportBlock
Definition cockpt.c:3843
short g_nInFlightMusicActive
Definition music.c:543
unsigned char g_abGunDisplayConfiguration[0xa4]
Definition turret.c:1237
Viewport g_stCockpitBackgroundViewportRecord
Definition fltsetup.c:1068
short g_nHudMessageBackgroundDepth
Definition cockpt.c:100
short g_nScreenHeight
Definition eventmgr.c:2431
Viewport g_27_stViewScratchInfo
Definition cockpt.c:3841
Viewport g_4_stRightVduView
Definition cockpt.c:3842
unsigned char g_ucPrimaryTextColour
Definition startup.c:550
unsigned char * g_pHudMessageBackground
Definition cockpt.c:98
short g_1_asSpacePaletteFade[3]
Definition message.c:241
Viewport g_2_stModalSourceWindow
Definition message.c:231
ShortRect g_stLeftVduBounds
Definition cockpt.c:21
FixedVector g_aShipPosition[SPACE_OBJECT_COUNT]
Definition viewrect.c:108
unsigned char g_cPrimaryViewBufferColour
Definition startup.c:559
unsigned char * g_pPendingCockpitDamageShape
Definition cockpt.c:40
CockpitBarDefinition g_aCockpitBarDefinitions[8]
Definition cockpt.c:19
unsigned char * g_pCockpitViewFrameInfo
Definition fltsetup.c:1071
short g_19_bStoredHighMemoryEnabled
Definition eventmgr.c:2505
Viewport g_101_stScrViewInfo
Definition cockpt.c:3831
PacketResourceDescriptor g_aHighMemoryCockpitResources[5]
Definition fltsetup.c:1024
TextContext g_1_stRightVduTextContextBlock
Definition message.c:237
signed char g_1_cStoredViewDisplayModeValue
Definition eventmgr.c:2515
ObjectResourceSlot g_aObjectResourceSlots[5]
Definition viewrect.c:72
MusicResource g_aTuneResources[66]
Definition music.c:608
ShortRect g_stRightVduBounds
Definition cockpt.c:22
Viewport g_2_stLeftwardVduPortBlock
Definition cockpt.c:3830
unsigned char * g_4_pScannerBlipUnderlayPointer
Definition cockpt.c:3787
unsigned char *volatile g_pCockpitExplosionShape
Definition cockpt.c:43
TextContext g_5_stLeftVduStringContextRecord
Definition cockpt.c:3840
short g_asConstellationObjectIndices[4]
Definition fltsetup.c:1056
short g_nLoadedCommPortraitPilot
Definition viewrect.c:55
unsigned char * g_pDamageDisplayBackground
Definition damage.c:8
short g_asCockpitLightY[7]
Definition cockpt.c:16
void * g_13_pStartupStellarPacket
Definition cockpt.c:3827
ShortPoint g_aDefaultWeaponDisplayPositions[16]
Definition cockpt.c:28
short g_bSpaceViewBufferEnabled
Definition main.c:1956
unsigned char * g_pCommPortraitResource
Definition comm.c:16
PacketResourceDescriptor g_aCockpitCommonShapeResources[5]
Definition fltsetup.c:1031
short g_bTargetLockDisplayEnabled
Definition cockpt.c:29
int g_6_nPendingAfterburnerSfxFrame
Definition ship.c:3060
TextContext g_16_stCockpitTextSettingsRecord
Definition message.c:238
signed char g_cHazardBaseTravelTime
Definition cockpt.c:26
short g_nScreenWidth
Definition eventmgr.c:2430
signed char g_acObjectType[SPACE_OBJECT_COUNT]
Definition viewrect.c:101
unsigned char * g_2_apCockpitShipShapes[4]
Definition fltsetup.c:1069
int g_nAvailableGameMemoryNumber
Definition startup.c:596
short g_1_nGunShowEnergyPercent
Definition turret.c:1278
short g_asObjectViewFrame[SPACE_OBJECT_COUNT]
Definition viewrect.c:94
short g_nHazardPitchRange
Definition cockpt.c:27
char * g_48_apCommunicationTextPacketsTable[50]
Definition comm.c:582
short g_1_nResourcePaletteState
Definition main.c:2000
struct LimitedMusicBuffer g_aLimitedMusicBuffers[2]
Definition music.c:527
CockpitBarDefinition bars[8]
Definition game_data.h:506
ShortPoint weaponDisplayPositions[16]
Definition game_data.h:515
ShortPoint pilotHandOrigin
Definition game_data.h:512
signed char targetLockDisplayEnabled
Definition game_data.h:516
CockpitScannerGeometry scanner
Definition game_data.h:510
signed char lightOnFrame[7]
Definition game_data.h:505
ShortRect leftVduBounds
Definition game_data.h:508
ShortPoint readoutOrigins[4]
Definition game_data.h:507
ShortRect pilotHandBounds
Definition game_data.h:511
signed char lightOffFrame[7]
Definition game_data.h:504
ShortRect rightVduBounds
Definition game_data.h:509
ShortPoint damagePositions[4]
Definition game_data.h:501
signed char field_f6
Definition game_data.h:513
ShortPoint hudMessageOrigin
Definition game_data.h:500
void * packet
Definition game_data.h:692
unsigned char * animation
Definition game_data.h:379
unsigned char * shapeSet
Definition game_data.h:392
unsigned char ** resource
Definition game_data.h:748
short top
Definition game_data.h:480
short left
Definition game_data.h:479
short right
Definition game_data.h:481
short bottom
Definition game_data.h:482
char * text
Definition game.h:290
Viewport * viewport
Definition game.h:284
unsigned char * pixels
Definition game.h:150
short right
Definition game.h:154
short bottom
Definition game.h:155
unsigned char * allocation
Definition game.h:156
unsigned short * rowOffsets
Definition game.h:151
short left
Definition game.h:152
short top
Definition game.h:153