From d5cf0dd85b37d786144008892b084f47de81a774 Mon Sep 17 00:00:00 2001 From: kreatordxx <> Date: Sun, 7 Feb 2010 07:28:49 +0000 Subject: [PATCH] Move MAX_SUBMODELS from inferno.h to polyobj.h, fixing #include loop by removing some (mainly object.h) and instead using explicit 'struct' declarations; compile net_ipx.c for Mac SDL Video build --- CHANGELOG.txt | 1 + d1x-rebirth.xcodeproj/project.pbxproj | 2 ++ include/3d.h | 5 +++-- main/aistruct.h | 2 +- main/game.h | 7 ++++--- main/gamefont.h | 1 + main/gameseq.h | 1 + main/inferno.h | 6 ------ main/laser.h | 16 +++++++++------- main/polyobj.h | 1 + main/robot.h | 6 ++++-- 11 files changed, 27 insertions(+), 21 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 8d9c282bb..38645ca87 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -4,6 +4,7 @@ D1X-Rebirth Changelog -------- main/game.c, main/gameseq.c, main/inferno.c, main/inferno.h, main/menu.c, main/newdemo.c: Create the main event loop and use it for the game and main menu main/scores.c: Make the scores menu into a window +d1x-rebirth.xcodeproj/project.pbxproj, include/3d.h, main/aistruct.h, main/game.h, main/gamefont.h, main/gameseq.h, main/inferno.h, main/laser.h, main/polyobj.h, main/robot.h: Move MAX_SUBMODELS from inferno.h to polyobj.h, fixing #include loop by removing some (mainly object.h) and instead using explicit 'struct' declarations; compile net_ipx.c for Mac SDL Video build 20100206 -------- diff --git a/d1x-rebirth.xcodeproj/project.pbxproj b/d1x-rebirth.xcodeproj/project.pbxproj index ac9d31637..2ad6560da 100755 --- a/d1x-rebirth.xcodeproj/project.pbxproj +++ b/d1x-rebirth.xcodeproj/project.pbxproj @@ -282,6 +282,7 @@ EB380D7D0E168B1900EBD9AD /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = EB380D7B0E168B1900EBD9AD /* InfoPlist.strings */; }; EB380D7E0E168B1900EBD9AD /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = EB380D7B0E168B1900EBD9AD /* InfoPlist.strings */; }; EB775A7A105611720036C348 /* extractD1Data.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EB775A79105611720036C348 /* extractD1Data.cpp */; }; + EB861343111E9E810097D871 /* net_ipx.c in Sources */ = {isa = PBXBuildFile; fileRef = EBF658990F936A8400CB5C73 /* net_ipx.c */; }; EB8BE84F1071FBE00069486E /* player.c in Sources */ = {isa = PBXBuildFile; fileRef = EB8BE84E1071FBE00069486E /* player.c */; }; EB8BE8501071FBE00069486E /* player.c in Sources */ = {isa = PBXBuildFile; fileRef = EB8BE84E1071FBE00069486E /* player.c */; }; EB92BE600CDD693C0045A32C /* digi_audio.c in Sources */ = {isa = PBXBuildFile; fileRef = EB92BE5C0CDD693C0045A32C /* digi_audio.c */; }; @@ -1718,6 +1719,7 @@ EBE8D8910FDA76D1009D181F /* gamerend.c in Sources */, EB8BE8501071FBE00069486E /* player.c in Sources */, 17DFA6B110C1A29500674D11 /* net_udp.c in Sources */, + EB861343111E9E810097D871 /* net_ipx.c in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/include/3d.h b/include/3d.h index e30507919..9a700b34f 100644 --- a/include/3d.h +++ b/include/3d.h @@ -41,7 +41,8 @@ COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #include "fix.h" #include "vecmat.h" //the vector/matrix library #include "gr.h" -#include "object.h" + +struct object; extern int g3d_interp_outline; //if on, polygon models outlined in white extern short highest_texture_num; @@ -227,7 +228,7 @@ bool g3_draw_rod_tmap(grs_bitmap *bitmap,g3s_point *bot_point,fix bot_width,g3s_ //returns 1 if off screen, 0 if drew bool g3_draw_bitmap(vms_vector *pos,fix width,fix height,grs_bitmap *bm #ifdef OGL - ,object *obj + , struct object *obj #endif ); diff --git a/main/aistruct.h b/main/aistruct.h index 9790cd46b..1ad51cc7c 100644 --- a/main/aistruct.h +++ b/main/aistruct.h @@ -118,7 +118,7 @@ COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #define _AISTRUCT_H #include "inferno.h" -//#include "polyobj.h" +#include "polyobj.h" #define GREEN_GUY 1 diff --git a/main/game.h b/main/game.h index 6f980102f..540cdc695 100644 --- a/main/game.h +++ b/main/game.h @@ -23,7 +23,6 @@ COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #include "pstypes.h" #include "window.h" #include "vecmat.h" -#include "object.h" #ifdef NDEBUG #define MAXIMUM_FPS 200 @@ -31,6 +30,8 @@ COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #define MAXIMUM_FPS 1000 #endif +struct object; + extern struct window *Game_wind; // from mglobal.c @@ -109,7 +110,7 @@ void close_game(void); void init_cockpit(void); void calc_frame_time(void); void FixedStepCalc(); -int do_flythrough(object *obj,int first_time); +int do_flythrough(struct object *obj,int first_time); extern int Difficulty_level; // Difficulty level in 0..NDL-1, 0 = easiest, NDL-1 = hardest extern int Global_laser_firing_count; @@ -158,7 +159,7 @@ extern int Game_window_w, // width and height of player's game window extern int Rear_view; // if true, looking back. // initalize flying -void fly_init(object *obj); +void fly_init(struct object *obj); // selects a given cockpit (or lack of one). void select_cockpit(int mode); diff --git a/main/gamefont.h b/main/gamefont.h index e943aee42..7c194200c 100644 --- a/main/gamefont.h +++ b/main/gamefont.h @@ -22,6 +22,7 @@ COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #define _GAMEFONT_H #include "gr.h" +#include "piggy.h" // When adding a new font, don't forget to change the filename in // gamefont.c!!!!!!!!!!!!!!!!!!!!!!!!!!! diff --git a/main/gameseq.h b/main/gameseq.h index cb1d1a93c..be955f75a 100644 --- a/main/gameseq.h +++ b/main/gameseq.h @@ -24,6 +24,7 @@ COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #include "player.h" #include "mission.h" +#include "object.h" #define SUPER_MISSILE 0 #define SUPER_SEEKER 1 diff --git a/main/inferno.h b/main/inferno.h index 831466815..f7ded1a54 100644 --- a/main/inferno.h +++ b/main/inferno.h @@ -45,10 +45,6 @@ COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #define FMODE_GAME 2 //running the game #define FMODE_EDITOR 3 //running the editor -//This constant doesn't really belong here, but it is because of horrible -//circular dependencies involving object.h, aistruct.h, polyobj.h, & robot.h -#define MAX_SUBMODELS 10 //how many animating sub-objects per model - // the maximum length of a filename #define FILENAME_LEN 13 @@ -59,8 +55,6 @@ COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. extern jmp_buf LeaveEvents; extern int Function_mode; //in game or editor? extern int Screen_mode; //editor screen or game screen? -extern int start_with_mission; -extern char *start_with_mission_name; extern int MacHog; #if defined(__APPLE__) || defined(macintosh) diff --git a/main/laser.h b/main/laser.h index 1aec41aaf..2e953387f 100644 --- a/main/laser.h +++ b/main/laser.h @@ -57,13 +57,15 @@ COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #define MAX_TRACKABLE_DIST (F1_0*250) #define HOMING_MISSILE_STRAIGHT_TIME (F1_0/8) // Changed as per request of John, Adam, Yuan, but mostly John +struct object; + extern fix Min_trackable_dot; // MIN_TRACKABLE_DOT inversely scaled by FrameTime -void Laser_render( object *obj ); -void Laser_player_fire( object * obj, int type, int gun_num, int make_sound, int harmless_flag ); -void Laser_player_fire_spread(object *obj, int laser_type, int gun_num, fix spreadr, fix spreadu, int make_sound, int harmless); -void Laser_do_weapon_sequence( object *obj ); -void Flare_create(object *obj); +void Laser_render( struct object *obj ); +void Laser_player_fire( struct object * obj, int type, int gun_num, int make_sound, int harmless_flag ); +void Laser_player_fire_spread(struct object *obj, int laser_type, int gun_num, fix spreadr, fix spreadu, int make_sound, int harmless); +void Laser_do_weapon_sequence( struct object *obj ); +void Flare_create(struct object *obj); int laser_are_related( int o1, int o2 ); extern int do_laser_firing_player(void); @@ -89,8 +91,8 @@ extern int do_laser_firing(int objnum, int weapon_id, int level, int flags, int // Returns object number of laser fired or -1 if not possible to fire laser. int Laser_create_new_easy( vms_vector * direction, vms_vector * position, int parent, int weapon_type, int make_sound ); -extern void create_smart_children(object *objp); -extern int object_to_object_visibility(object *obj1, object *obj2, int trans_type); +extern void create_smart_children(struct object *objp); +extern int object_to_object_visibility(struct object *obj1, struct object *obj2, int trans_type); extern int Muzzle_queue_index; diff --git a/main/polyobj.h b/main/polyobj.h index 15288da7f..7b666bc79 100644 --- a/main/polyobj.h +++ b/main/polyobj.h @@ -33,6 +33,7 @@ COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #ifndef DRIVE #define MAX_POLYGON_MODELS 85 +#define MAX_SUBMODELS 10 #else #define MAX_POLYGON_MODELS 300 #define MAX_SUBMODELS 10 diff --git a/main/robot.h b/main/robot.h index 9873fda32..1014dd98c 100644 --- a/main/robot.h +++ b/main/robot.h @@ -7,10 +7,12 @@ #ifndef _ROBOT_H #define _ROBOT_H +#include "cfile.h" #include "vecmat.h" -#include "object.h" #include "game.h" +struct object; + #define MAX_GUNS 8 //should be multiple of 4 for ubyte array //Animation states @@ -102,7 +104,7 @@ extern int N_robot_joints; //given an object and a gun number, return position in 3-space of gun //fills in gun_point -void calc_gun_point(vms_vector *gun_point,object *obj,int gun_num); +void calc_gun_point(vms_vector *gun_point,struct object *obj,int gun_num); //void calc_gun_point(vms_vector *gun_point,int objnum,int gun_num); // Tells joint positions for a gun to be in a specified state.