use new macros PLAYING_BUILTIN_MISSION and EMULATING_D1 for accessing information about the current mission, for easier code refactorisation

VS: ----------------------------------------------------------------------
This commit is contained in:
Martin Schaffner 2004-10-09 15:59:28 +00:00
parent 0c79b6adb6
commit e435acd4f0
9 changed files with 57 additions and 51 deletions

View file

@ -1,3 +1,10 @@
2004-10-09 Martin Schaffner <maschaffner@gmx.ch>
* main/automap.c, main/cntrlcen.c, main/collide.c, main/endlevel.c,
main/gamerend.c, main/gameseq.c, main/mission.h, main/titles.c:
use new macros PLAYING_BUILTIN_MISSION and EMULATING_D1 for accessing
information about the current mission, for easier code refactorisation.
2004-09-30 Martin Schaffner <maschaffner@gmx.ch>
* cfile/cfile.c: simplify, reduce number of global vars

View file

@ -1,4 +1,4 @@
/* $Id: automap.c,v 1.18 2004-08-28 23:17:45 schaffner Exp $ */
/* $Id: automap.c,v 1.19 2004-10-09 15:59:28 schaffner Exp $ */
/*
THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO
@ -801,7 +801,7 @@ void create_name_canv()
else
sprintf(name_level_left, "Secret Level %i",-Current_level_num);
if (Current_mission_num == Builtin_mission_num && Current_level_num>0) //built-in mission
if (PLAYING_BUILTIN_MISSION && Current_level_num > 0)
sprintf(name_level_right,"%s %d: ",system_name[(Current_level_num-1)/4],((Current_level_num-1)%4)+1);
else
strcpy(name_level_right, " ");

View file

@ -1,4 +1,4 @@
/* $Id: cntrlcen.c,v 1.16 2004-08-28 23:17:45 schaffner Exp $ */
/* $Id: cntrlcen.c,v 1.17 2004-10-09 15:59:28 schaffner Exp $ */
/*
THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO
@ -23,7 +23,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
#endif
#ifdef RCS
static char rcsid[] = "$Id: cntrlcen.c,v 1.16 2004-08-28 23:17:45 schaffner Exp $";
static char rcsid[] = "$Id: cntrlcen.c,v 1.17 2004-10-09 15:59:28 schaffner Exp $";
#endif
#ifdef WINDOWS
@ -170,7 +170,7 @@ void do_countdown_frame()
if (!is_D2_OEM && !is_MAC_SHARE && !is_SHAREWARE) // get countdown in OEM and SHAREWARE only
{
// On last level, we don't want a countdown.
if ((Current_mission_num == Builtin_mission_num) && (Current_level_num == Last_level))
if (PLAYING_BUILTIN_MISSION && Current_level_num == Last_level)
{
if (!(Game_mode & GM_MULTI))
return;

View file

@ -1,4 +1,4 @@
/* $Id: collide.c,v 1.13 2004-08-28 23:17:45 schaffner Exp $ */
/* $Id: collide.c,v 1.14 2004-10-09 15:59:28 schaffner Exp $ */
/*
THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO
@ -1371,9 +1371,9 @@ int apply_damage_to_robot(object *robot, fix damage, int killer_objnum)
// Buddy invulnerable on level 24 so he can give you his important messages. Bah.
// Also invulnerable if his cheat for firing weapons is in effect.
if (Robot_info[robot->id].companion) {
// if ((Current_mission_num == Builtin_mission_num && Current_level_num == Last_level) || Buddy_dude_cheat)
// if ((PLAYING_BUILTIN_MISSION && Current_level_num == Last_level) || Buddy_dude_cheat)
#ifdef NETWORK
if ((Current_mission_num == Builtin_mission_num && Current_level_num == Last_level) )
if (PLAYING_BUILTIN_MISSION && Current_level_num == Last_level)
return 0;
#endif
}
@ -1389,7 +1389,7 @@ int apply_damage_to_robot(object *robot, fix damage, int killer_objnum)
// Do unspeakable hacks to make sure player doesn't die after killing boss. Or before, sort of.
if (Robot_info[robot->id].boss_flag)
#ifdef NETWORK
if ((Current_mission_num == Builtin_mission_num) && Current_level_num == Last_level)
if (PLAYING_BUILTIN_MISSION && Current_level_num == Last_level)
#endif
if (robot->shields < 0)
{

View file

@ -1,4 +1,4 @@
/* $Id: endlevel.c,v 1.22 2004-08-29 17:57:23 schaffner Exp $ */
/* $Id: endlevel.c,v 1.23 2004-10-09 15:59:28 schaffner Exp $ */
/*
THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO
@ -23,7 +23,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
#endif
#ifdef RCS
static char rcsid[] = "$Id: endlevel.c,v 1.22 2004-08-29 17:57:23 schaffner Exp $";
static char rcsid[] = "$Id: endlevel.c,v 1.23 2004-10-09 15:59:28 schaffner Exp $";
#endif
//#define SLEW_ON 1
@ -211,7 +211,7 @@ int start_endlevel_movie()
int r;
ubyte save_pal[768];
//Assert(Current_mission_num == Builtin_mission_num); //only play movie for built-in mission
//Assert(PLAYING_BUILTIN_MISSION); //only play movie for built-in mission
//Assert(N_MOVIES >= Last_level);
//Assert(N_MOVIES_SECRET >= -Last_secret_level);
@ -313,7 +313,7 @@ void start_endlevel_sequence()
Newdemo_state = ND_STATE_PAUSED;
if (Newdemo_state == ND_STATE_PLAYBACK) { // don't do this if in playback mode
if (Current_mission_num == Builtin_mission_num) //only play movie for built-in mission
if (PLAYING_BUILTIN_MISSION) // only play movie for built-in mission
start_endlevel_movie();
strcpy(last_palette_loaded,""); //force palette load next time
return;
@ -341,11 +341,9 @@ void start_endlevel_sequence()
}
#endif
if (Current_mission_num == Builtin_mission_num) {
// only play movie for built-in mission
if (PLAYING_BUILTIN_MISSION) // only play movie for built-in mission
if (!(Game_mode & GM_MULTI))
movie_played = start_endlevel_movie();
}
if (!(Game_mode & GM_MULTI) && (movie_played == MOVIE_NOT_PLAYED) && endlevel_data_loaded)
{ //don't have movie. Do rendered sequence, if available
@ -707,8 +705,7 @@ void do_endlevel_frame()
if (ConsoleObject->segnum == transition_segnum) {
if ((Current_mission_num == Builtin_mission_num) &&
(start_endlevel_movie() != MOVIE_NOT_PLAYED))
if (PLAYING_BUILTIN_MISSION && start_endlevel_movie() != MOVIE_NOT_PLAYED)
stop_endlevel_sequence();
else {
int objnum;

View file

@ -1,4 +1,4 @@
/* $Id: gamerend.c,v 1.13 2003-10-12 09:38:48 btb Exp $ */
/* $Id: gamerend.c,v 1.14 2004-10-09 15:59:28 schaffner Exp $ */
/*
THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO
@ -23,7 +23,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
#endif
#ifdef RCS
static char rcsid[] = "$Id: gamerend.c,v 1.13 2003-10-12 09:38:48 btb Exp $";
static char rcsid[] = "$Id: gamerend.c,v 1.14 2004-10-09 15:59:28 schaffner Exp $";
#endif
#ifdef WINDOWS
@ -288,7 +288,7 @@ void render_countdown_gauge()
if (!is_D2_OEM && !is_MAC_SHARE && !is_SHAREWARE) // no countdown on registered only
{
// On last level, we don't want a countdown.
if ((Current_mission_num == Builtin_mission_num) && (Current_level_num == Last_level))
if (PLAYING_BUILTIN_MISSION && Current_level_num == Last_level)
{
if (!(Game_mode & GM_MULTI))
return;

View file

@ -1,4 +1,4 @@
/* $Id: gameseq.c,v 1.36 2004-08-28 23:17:45 schaffner Exp $ */
/* $Id: gameseq.c,v 1.37 2004-10-09 15:59:28 schaffner Exp $ */
/*
THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO
@ -24,7 +24,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
#endif
#ifdef RCS
char gameseq_rcsid[] = "$Id: gameseq.c,v 1.36 2004-08-28 23:17:45 schaffner Exp $";
char gameseq_rcsid[] = "$Id: gameseq.c,v 1.37 2004-10-09 15:59:28 schaffner Exp $";
#endif
#ifdef WINDOWS
@ -163,9 +163,9 @@ char Current_level_name[LEVEL_NAME_LEN];
int Last_level, Last_secret_level;
// Global variables describing the player
int N_players=1; // Number of players ( >1 means a net game, eh?)
int Player_num=0; // The player number who is on the console.
player Players[MAX_PLAYERS+4]; // Misc player info
int N_players=1; // Number of players ( >1 means a net game, eh?)
int Player_num=0; // The player number who is on the console.
player Players[MAX_PLAYERS+4]; // Misc player info
obj_position Player_init[MAX_PLAYERS];
// Global variables telling what sort of game we have
@ -285,7 +285,7 @@ gameseq_init_network_players()
}
#endif
#ifdef NETWORK
if (is_D2_OEM && (Game_mode & GM_MULTI) && Current_mission_num == Builtin_mission_num && Current_level_num==8)
if (is_D2_OEM && (Game_mode & GM_MULTI) && PLAYING_BUILTIN_MISSION && Current_level_num==8)
{
for (i=0;i<N_players;i++)
if (Players[i].connected && !(NetPlayers.players[i].version_minor & 0xF0))
@ -295,7 +295,7 @@ gameseq_init_network_players()
}
}
if (is_MAC_SHARE && (Game_mode & GM_MULTI) && Current_mission_num == Builtin_mission_num && Current_level_num == 4)
if (is_MAC_SHARE && (Game_mode & GM_MULTI) && PLAYING_BUILTIN_MISSION && Current_level_num == 4)
{
for (i = 0; i < N_players; i++)
if (Players[i].connected && !(NetPlayers.players[i].version_minor & 0xF0))
@ -582,7 +582,7 @@ void DoGameOver()
{
// nm_messagebox( TXT_GAME_OVER, 1, TXT_OK, "" );
if (Current_mission_num == Builtin_mission_num)
if (PLAYING_BUILTIN_MISSION)
scores_maybe_add_player(0);
Function_mode = FMODE_MENU;
@ -889,7 +889,7 @@ void LoadLevel(int level_num,int page_in_textures)
if ( page_in_textures )
piggy_load_level_data();
if (Mission_list[Current_mission_num].descent_version == 1)
if (EMULATING_D1)
load_d1_bitmap_replacements();
else
load_bitmap_replacements(level_name);
@ -1462,7 +1462,7 @@ void DoEndGame(void)
key_flush();
if (Current_mission_num == Builtin_mission_num && !(Game_mode & GM_MULTI))
if (PLAYING_BUILTIN_MISSION && !(Game_mode & GM_MULTI))
{ //only built-in mission, & not multi
int played=MOVIE_NOT_PLAYED; //default is not played
@ -1507,7 +1507,7 @@ void DoEndGame(void)
// NOTE LINK TO ABOVE
DoEndLevelScoreGlitz(0);
if (Current_mission_num == Builtin_mission_num && !((Game_mode & GM_MULTI) && !(Game_mode & GM_MULTI_COOP))) {
if (PLAYING_BUILTIN_MISSION && !((Game_mode & GM_MULTI) && !(Game_mode & GM_MULTI_COOP))) {
WINDOS(
dd_gr_set_current_canvas(NULL),
gr_set_current_canvas( NULL )
@ -2055,7 +2055,7 @@ void ShowLevelIntro(int level_num)
memcpy(save_pal,gr_palette,sizeof(gr_palette));
if (Current_mission_num == Builtin_mission_num) {
if (PLAYING_BUILTIN_MISSION) {
int movie=0;
if (is_SHAREWARE)
@ -2107,7 +2107,7 @@ void ShowLevelIntro(int level_num)
}
}
else { //not the built-in mission. check for add-on briefing
if (Mission_list[Current_mission_num].descent_version == 1)
if (EMULATING_D1)
do_briefing_screens(Briefing_text_filename, level_num);
else {
char tname[FILENAME_LEN];

View file

@ -1,4 +1,4 @@
/* $Id: mission.h,v 1.17 2004-08-28 23:17:45 schaffner Exp $ */
/* $Id: mission.h,v 1.18 2004-10-09 15:59:28 schaffner Exp $ */
/*
THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO
@ -87,6 +87,9 @@ extern int Builtin_mission_hogsize;
#define is_MAC_SHARE (Builtin_mission_hogsize == MAC_SHARE_MISSION_HOGSIZE)
#define is_D2_OEM (Builtin_mission_hogsize == OEM_MISSION_HOGSIZE)
#define PLAYING_BUILTIN_MISSION (Current_mission_num == Builtin_mission_num)
#define EMULATING_D1 (Mission_list[Current_mission_num].descent_version == 1)
//arrays of name of the level files
extern char Level_names[MAX_LEVELS_PER_MISSION][FILENAME_LEN];
extern char Secret_level_names[MAX_SECRET_LEVELS_PER_MISSION][FILENAME_LEN];

View file

@ -1,4 +1,4 @@
/* $Id: titles.c,v 1.30 2004-08-28 23:17:45 schaffner Exp $ */
/* $Id: titles.c,v 1.31 2004-10-09 15:59:28 schaffner Exp $ */
/*
THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO
@ -622,7 +622,7 @@ int load_briefing_screen( int screen_num )
int pcx_error;
char *fname;
if (Mission_list[Current_mission_num].descent_version == 1)
if (EMULATING_D1)
fname = Briefing_screens[screen_num].bs_name;
else
fname = CurBriefScreenName;
@ -770,7 +770,7 @@ int show_briefing_message(int screen_num, char *message)
// mprintf((0, "Going to print message [%s] at x=%i, y=%i\n", message, x, y));
gr_set_curfont( GAME_FONT );
if (Mission_list[Current_mission_num].descent_version == 1) {
if (EMULATING_D1) {
GotZ = 1;
MALLOC(bsp, briefing_screen, 1);
memcpy(bsp, &Briefing_screens[screen_num], sizeof(briefing_screen));
@ -824,7 +824,7 @@ int show_briefing_message(int screen_num, char *message)
RobotPlaying=0;
}
if (Mission_list[Current_mission_num].descent_version == 1) {
if (EMULATING_D1) {
init_spinning_robot();
robot_num = get_message_num(&message);
while (*message++ != 10)
@ -1171,7 +1171,7 @@ int show_briefing_message(int screen_num, char *message)
if (printing_channel>-1)
digi_stop_sound( printing_channel );
if (Mission_list[Current_mission_num].descent_version == 1)
if (EMULATING_D1)
d_free(bsp);
return rval;
@ -1274,10 +1274,9 @@ int show_briefing_text(int screen_num)
{
char *message_ptr;
if (Mission_list[Current_mission_num].descent_version == 1)
message_ptr = get_briefing_message(Briefing_screens[screen_num].message_num);
else
message_ptr = get_briefing_message(screen_num);
message_ptr = get_briefing_message
(EMULATING_D1 ? Briefing_screens[screen_num].message_num : screen_num);
if (message_ptr==NULL)
return (0);
@ -1297,11 +1296,11 @@ void DoBriefingColorStuff ()
Briefing_foreground_colors[2] = gr_find_closest_color_current( 8, 31, 54);
Briefing_background_colors[2] = gr_find_closest_color_current( 1, 4, 7);
if (Mission_list[Current_mission_num].descent_version == 1) {
//green
Briefing_foreground_colors[0] = gr_find_closest_color_current( 0, 54, 0);
Briefing_background_colors[0] = gr_find_closest_color_current( 0, 19, 0);
//white
if (EMULATING_D1) {
//green
Briefing_foreground_colors[0] = gr_find_closest_color_current( 0, 54, 0);
Briefing_background_colors[0] = gr_find_closest_color_current( 0, 19, 0);
//white
Briefing_foreground_colors[1] = gr_find_closest_color_current( 42, 38, 32);
Briefing_background_colors[1] = gr_find_closest_color_current( 14, 14, 14);
@ -1341,7 +1340,7 @@ int show_briefing_screen( int screen_num, int allow_keys)
return 0;
}
if (Mission_list[Current_mission_num].descent_version == 1) {
if (EMULATING_D1) {
int pcx_error;
#if 1
grs_bitmap briefing_bm;
@ -1460,7 +1459,7 @@ void do_briefing_screens(char *filename,int level_num)
key_flush();
if (Mission_list[Current_mission_num].descent_version == 1) {
if (EMULATING_D1) {
if (level_num == 1) {
while ((!abort_briefing_screens) && (Briefing_screens[cur_briefing_screen].level_num == 0)) {
abort_briefing_screens = show_briefing_screen(cur_briefing_screen, 0);