Wing Commander II
Reconstructed Win32 source (1996)
Toggle main menu visibility
Loading...
Searching...
No Matches
loadmisn.c
Go to the documentation of this file.
1
/*
2
* Loads mission data.
3
*
4
* Retail object 0x4401C0-0x44048F (link order; see docs/ORDER.md).
5
*/
6
#include "
game.h
"
7
8
#pragma function(strcat)
9
/* Function start: 0x4401C0 */
10
void
LoadMissionData
(
short
series,
short
mission)
11
{
12
unsigned
char
*packet;
13
unsigned
char
*source;
14
int
position;
15
char
campaignSlot[4];
16
char
fileName[13] =
"module.00"
;
17
18
strcat(fileName,
19
itoa((
int
)
g_nSelectedCampaignSlot
,
20
campaignSlot, 10));
21
22
packet =
FetchDiskPacketRetrying
(fileName, 0, 0);
23
position = series * 0x60;
24
position += mission * 0x18;
25
source = packet + position;
26
DosMemmove
(&
g_13_stMissionHeaderBlock
, source, 0x18);
27
ReleasePacketHandle
(packet);
28
29
packet =
FetchDiskPacketRetrying
(fileName, 1, 0);
30
position = series * 0xfc8;
31
position += mission * 0x3f2;
32
source = packet + position;
33
DosMemmove
(
g_aMissionNavPoints
, source, 0x3f2);
34
ReleasePacketHandle
(packet);
35
36
packet =
FetchDiskPacketRetrying
(fileName, 2, 0);
37
position = series * 0x800;
38
position += mission * 0x200;
39
source = packet + position;
40
DosMemmove
(
g_69_aMissionObjectiveSources
, source, 0x200);
41
ReleasePacketHandle
(packet);
42
43
packet =
FetchDiskPacketRetrying
(fileName, 3, 0);
44
position = series * 0xf00;
45
position += mission * 0x3c0;
46
source = packet + position;
47
DosMemmove
(
g_aMissionShips
, source, 0x3c0);
48
ReleasePacketHandle
(packet);
49
50
packet =
FetchDiskPacketRetrying
(fileName, 4, 0);
51
position = series * 0xa0;
52
position += mission * 0x28;
53
source = packet + position;
54
DosMemmove
(
g_5_abMissionAuxBlockBytes
, source, 0x28);
55
ReleasePacketHandle
(packet);
56
57
packet =
FetchDiskPacketRetrying
(fileName, 5, 0);
58
position = series * 0x28;
59
source = packet + position;
60
DosMemmove
(
g_abSeriesAuxData
, source, 0x28);
61
ReleasePacketHandle
(packet);
62
63
packet =
FetchDiskPacketRetrying
(fileName, 6, 0);
64
position = series * 0x378;
65
position += mission * 0xde;
66
source = packet + position;
67
DosMemmove
(
g_abMissionBriefingData
, source, 0xde);
68
ReleasePacketHandle
(packet);
69
}
LoadMissionData
void LoadMissionData(short series, short mission)
Definition
loadmisn.c:10
DosMemmove
void DosMemmove(void *dst, const void *src, unsigned short n)
FetchDiskPacketRetrying
void * FetchDiskPacketRetrying(char *fileName, short section, short flags)
Definition
disk.c:187
ReleasePacketHandle
void ReleasePacketHandle(void *handle)
Definition
memapi.c:108
game.h
Shared Win32 declarations, types and library interfaces.
g_abMissionBriefingData
unsigned char g_abMissionBriefingData[0xde]
Definition
hotspot.c:256
g_aMissionNavPoints
MissionNavPoint g_aMissionNavPoints[MISSION_NAV_POINT_COUNT]
Definition
hotspot.c:237
g_nSelectedCampaignSlot
short g_nSelectedCampaignSlot
Definition
campaign.c:354
g_69_aMissionObjectiveSources
MissionObjectiveSource g_69_aMissionObjectiveSources[8]
Definition
hotspot.c:252
g_aMissionShips
MissionShipRecord g_aMissionShips[MISSION_SHIP_COUNT]
Definition
hotspot.c:240
g_abSeriesAuxData
unsigned char g_abSeriesAuxData[0x28]
Definition
hotspot.c:251
g_5_abMissionAuxBlockBytes
unsigned char g_5_abMissionAuxBlockBytes[0x28]
Definition
hotspot.c:250
g_13_stMissionHeaderBlock
MissionHeader g_13_stMissionHeaderBlock
Definition
hotspot.c:253
src
loadmisn.c
Generated by
1.18.0