don't need .msn file for descent.hog anymore

This commit is contained in:
Bradley Bell 2003-01-07 03:10:20 +00:00
parent 27d6cb2273
commit 66aaabfd22
5 changed files with 121 additions and 46 deletions

View file

@ -50,8 +50,6 @@ changelog::
pkgdatadir = @sharepath@ pkgdatadir = @sharepath@
missiondir = ${pkgdatadir}/missions missiondir = ${pkgdatadir}/missions
dist_mission_DATA = descent.msn
EXTRA_DIST = ${EXTRA_SUBDIRS} \ EXTRA_DIST = ${EXTRA_SUBDIRS} \
ChangeLog \ ChangeLog \
djgpp.bat djgpp.sh \ djgpp.bat djgpp.sh \

View file

@ -1,36 +0,0 @@
name = Descent: First Strike
type = normal
briefing = briefing.txb
num_levels = 27
level01.rdl
level02.rdl
level03.rdl
level04.rdl
level05.rdl
level06.rdl
level07.rdl
level08.rdl
level09.rdl
level10.rdl
level11.rdl
level12.rdl
level13.rdl
level14.rdl
level15.rdl
level16.rdl
level17.rdl
level18.rdl
level19.rdl
level20.rdl
level21.rdl
level22.rdl
level23.rdl
level24.rdl
level25.rdl
level26.rdl
level27.rdl
num_secrets = 3
levels1.rdl
levels2.rdl
levels3.rdl
ending = endreg.txb

View file

@ -61,10 +61,8 @@ To install an additional mission, just place the .hog and the .msn or
inside the system-wide data dir, or your $HOME/.d2x dir. d2x will inside the system-wide data dir, or your $HOME/.d2x dir. d2x will
look in both places. look in both places.
To install the mission from Descent 1: To install the original Descent 1 mission:
Place these files into your missions directory: Place descent.hog into your data dir.
descent.hog
descent.msn (distributed with d2x)
Vertigo Installation Vertigo Installation

View file

@ -1,4 +1,4 @@
/* $Id: mission.c,v 1.16 2003-01-06 23:06:18 btb Exp $ */ /* $Id: mission.c,v 1.17 2003-01-07 03:10:20 btb Exp $ */
/* /*
THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO
@ -136,13 +136,18 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
mle Mission_list[MAX_MISSIONS]; mle Mission_list[MAX_MISSIONS];
int Current_mission_num, Builtin_mission_num; int Current_mission_num;
int N_secret_levels; // Made a global by MK for scoring purposes. August 1, 1995. int N_secret_levels; // Made a global by MK for scoring purposes. August 1, 1995.
char *Current_mission_filename,*Current_mission_longname; char *Current_mission_filename,*Current_mission_longname;
int Builtin_mission_num;
char Builtin_mission_filename[9]; char Builtin_mission_filename[9];
int Builtin_mission_hogsize; int Builtin_mission_hogsize;
int D1_Builtin_mission_num;
char D1_Builtin_mission_filename[9];
int D1_Builtin_mission_hogsize;
//this stuff should get defined elsewhere //this stuff should get defined elsewhere
char Level_names[MAX_LEVELS_PER_MISSION][FILENAME_LEN]; char Level_names[MAX_LEVELS_PER_MISSION][FILENAME_LEN];
@ -155,6 +160,65 @@ char Secret_level_names[MAX_SECRET_LEVELS_PER_MISSION][FILENAME_LEN];
#define MISSION_DIR "./" #define MISSION_DIR "./"
#endif #endif
//values for d1 built-in mission
#define BIM_LAST_LEVEL 27
#define BIM_LAST_SECRET_LEVEL -3
#define BIM_BRIEFING_FILE "briefing.tex"
#define BIM_ENDING_FILE "endreg.tex"
//
// Special versions of mission routines for d1 builtins
//
int load_mission_d1(int mission_num)
{
int i;
cfile_use_descent1_hogfile("descent.hog");
Current_mission_num = mission_num;
Current_mission_filename = Mission_list[mission_num].filename;
Current_mission_longname = Mission_list[mission_num].mission_name;
switch (D1_Builtin_mission_hogsize) {
case D1_SHAREWARE_MISSION_HOGSIZE:
N_secret_levels = 0;
Last_level = 7;
Last_secret_level = 0;
//build level names
for (i=0;i<Last_level;i++)
sprintf(Level_names[i], "level%02d.sdl", i+1);
break;
default:
Int3(); // fall through
case D1_MISSION_HOGSIZE:
N_secret_levels = 3;
Last_level = BIM_LAST_LEVEL;
Last_secret_level = BIM_LAST_SECRET_LEVEL;
//build level names
for (i=0;i<Last_level;i++)
sprintf(Level_names[i], "level%02d.rdl", i+1);
for (i=0;i<-Last_secret_level;i++)
sprintf(Secret_level_names[i], "levels%1d.rdl", i+1);
Secret_level_table[0] = 10;
Secret_level_table[1] = 21;
Secret_level_table[2] = 24;
break;
}
strcpy(Briefing_text_filename,BIM_BRIEFING_FILE);
strcpy(Ending_text_filename,BIM_ENDING_FILE);
return 1;
}
// //
// Special versions of mission routines for shareware // Special versions of mission routines for shareware
// //
@ -378,6 +442,37 @@ int read_mission_file(char *filename,int count,int location)
return 0; return 0;
} }
void add_d1_builtin_mission_to_list(int *count)
{
if (!cfexist("descent.hog"))
return;
D1_Builtin_mission_hogsize = cfile_size("descent.hog");
switch (D1_Builtin_mission_hogsize) {
default:
Warning("Unknown D1 hogsize %d\n", D1_Builtin_mission_hogsize);
Int3();
// fall through
case D1_SHAREWARE_MISSION_HOGSIZE:
strcpy(Mission_list[*count].filename, D1_MISSION_FILENAME);
strcpy(Mission_list[*count].mission_name, D1_SHAREWARE_MISSION_NAME);
Mission_list[*count].anarchy_only_flag = 0;
break;
case D1_MISSION_HOGSIZE:
strcpy(Mission_list[*count].filename, D1_MISSION_FILENAME);
strcpy(Mission_list[*count].mission_name, D1_MISSION_NAME);
Mission_list[*count].anarchy_only_flag = 0;
break;
}
strcpy(D1_Builtin_mission_filename, Mission_list[*count].filename);
Mission_list[*count].descent_version = 1;
Mission_list[*count].anarchy_only_flag = 0;
++(*count);
}
void add_builtin_mission_to_list(int *count) void add_builtin_mission_to_list(int *count)
{ {
Builtin_mission_hogsize = cfile_size("descent2.hog"); Builtin_mission_hogsize = cfile_size("descent2.hog");
@ -481,6 +576,7 @@ int build_mission_list(int anarchy_mode)
//@@ } //@@ }
add_builtin_mission_to_list(&count); //read built-in first add_builtin_mission_to_list(&count); //read built-in first
add_d1_builtin_mission_to_list(&count);
add_missions_to_list(MISSION_DIR "*.mn2", &count, anarchy_mode); add_missions_to_list(MISSION_DIR "*.mn2", &count, anarchy_mode);
add_missions_to_list(MISSION_DIR "*.msn", &count, anarchy_mode); add_missions_to_list(MISSION_DIR "*.msn", &count, anarchy_mode);
@ -498,6 +594,7 @@ int build_mission_list(int anarchy_mode)
// to top of mission list // to top of mission list
top_place = 0; top_place = 0;
promote("descent", &top_place, count); // original descent 1 mission promote("descent", &top_place, count); // original descent 1 mission
D1_Builtin_mission_num = top_place - 1;
promote(Builtin_mission_filename, &top_place, count); // d2 or d2demo promote(Builtin_mission_filename, &top_place, count); // d2 or d2demo
Builtin_mission_num = top_place - 1; Builtin_mission_num = top_place - 1;
promote("d2x", &top_place, count); // vertigo promote("d2x", &top_place, count); // vertigo
@ -536,6 +633,18 @@ int load_mission(int mission_num)
int found_hogfile; int found_hogfile;
int enhanced_mission = 0; int enhanced_mission = 0;
if (mission_num == D1_Builtin_mission_num) {
cfile_use_descent1_hogfile("descent.hog");
switch (D1_Builtin_mission_hogsize) {
case D1_MISSION_HOGSIZE:
case D1_SHAREWARE_MISSION_HOGSIZE:
return load_mission_d1(mission_num);
break;
default:
// continue on...
}
}
if (mission_num == Builtin_mission_num) { if (mission_num == Builtin_mission_num) {
switch (Builtin_mission_hogsize) { switch (Builtin_mission_hogsize) {
case SHAREWARE_MISSION_HOGSIZE: case SHAREWARE_MISSION_HOGSIZE:

View file

@ -1,4 +1,4 @@
/* $Id: mission.h,v 1.6 2003-01-06 23:10:19 btb Exp $ */ /* $Id: mission.h,v 1.7 2003-01-07 03:10:20 btb Exp $ */
/* /*
THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO
@ -56,6 +56,12 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
#define MAX_SECRET_LEVELS_PER_MISSION 6 #define MAX_SECRET_LEVELS_PER_MISSION 6
#define MISSION_NAME_LEN 25 #define MISSION_NAME_LEN 25
#define D1_MISSION_FILENAME "descent"
#define D1_MISSION_NAME "Descent: First Strike"
#define D1_MISSION_HOGSIZE 6856701
#define D1_SHAREWARE_MISSION_NAME "Descent Demo"
#define D1_SHAREWARE_MISSION_HOGSIZE 2339773
#define SHAREWARE_MISSION_FILENAME "d2demo" #define SHAREWARE_MISSION_FILENAME "d2demo"
#define SHAREWARE_MISSION_NAME "Descent 2 Demo" #define SHAREWARE_MISSION_NAME "Descent 2 Demo"
#define SHAREWARE_MISSION_HOGSIZE 2292566 #define SHAREWARE_MISSION_HOGSIZE 2292566