From 405989a84cdcddfc38d12373c028d663f2217401 Mon Sep 17 00:00:00 2001 From: Taylor Richards Date: Wed, 5 Nov 2014 15:40:07 -0500 Subject: [PATCH] platform and pstypes cleanup: - (properly) add platform stuff to build files - move some things from pstypes to platform.h - get rid of a bunch of old platform #define's - just use MAX_PATH_LEN and MAX_FILENAME_LEN for sizes - remove some unused cfile code - replace _splitstr() with base_filename() - fix filename/path stupidness in InetGetFile --- CMakeLists.txt | 1 + include/CMakeLists.txt | 8 ++ include/cfile.h | 14 +-- include/floating.h | 2 +- include/inetgetfile.h | 12 +- include/platform.h | 25 ++++ include/pstypes.h | 33 +---- include/unix.h | 36 +----- include/vecmat.h | 2 +- include/win.h | 15 +++ src/CMakeLists.txt | 18 +-- src/anim/animplay.cpp | 3 +- src/cfile/cfile.cpp | 186 ++++++++--------------------- src/cfile/cfilelist.cpp | 4 +- src/cfile/cfilesystem.cpp | 14 +-- src/freespace2/freespace.cpp | 4 +- src/gamesequence/gamesequence.cpp | 4 +- src/hud/hudbrackets.cpp | 8 +- src/hud/hudlock.cpp | 34 +++--- src/hud/hudsquadmsg.cpp | 20 ++-- src/inetfile/cftp.cpp | 26 ++-- src/inetfile/chttpget.cpp | 11 +- src/inetfile/inetgetfile.cpp | 59 ++++----- src/math/vecmat.cpp | 6 +- src/mission/missionbriefcommon.cpp | 2 +- src/mission/missioncampaign.cpp | 38 +++--- src/mission/missiongrid.cpp | 2 +- src/mission/missionmessage.cpp | 2 +- src/mission/missionparse.cpp | 2 +- src/model/modelread.cpp | 20 ++-- src/nebedit/nebedit.cpp | 2 +- src/network/multi.cpp | 6 +- src/network/multi_ingame.cpp | 6 +- src/network/multilag.cpp | 14 +-- src/network/psnet.cpp | 90 +++++++------- src/network/psnet2.cpp | 152 +++++++++++------------ src/osapi/osapi.cpp | 1 - src/osapi/outwnd.cpp | 2 - src/platform/platform.cpp | 35 ++++++ src/platform/unix.cpp | 32 +---- src/playerman/managepilot.cpp | 2 +- src/playerman/playercontrol.cpp | 2 +- src/radar/radar.cpp | 2 +- src/ship/aicode.cpp | 2 +- src/stats/medals.cpp | 2 +- src/weapon/swarm.cpp | 4 +- 46 files changed, 423 insertions(+), 542 deletions(-) create mode 100644 include/platform.h create mode 100644 include/win.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 14add1e..22e1a01 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -95,6 +95,7 @@ add_library(code ${code_SOURCE} ${code_HEADERS} ${platform_SOURCE} + ${platform_HEADERS} ) # diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt index 433686d..9c8c726 100644 --- a/include/CMakeLists.txt +++ b/include/CMakeLists.txt @@ -224,6 +224,14 @@ set(code_HEADERS PARENT_SCOPE ) + +set(platform_HEADERS + ${CMAKE_CURRENT_SOURCE_DIR}/platform.h + ${CMAKE_CURRENT_SOURCE_DIR}/unix.h + ${CMAKE_CURRENT_SOURCE_DIR}/win.h + PARENT_SCOPE +) + # # the game itself # diff --git a/include/cfile.h b/include/cfile.h index 51e7173..a35c5f8 100644 --- a/include/cfile.h +++ b/include/cfile.h @@ -589,18 +589,12 @@ void cf_sort_filenames( int n, char **list, int sort, file_list_info *info = NUL // Returns: If not found returns 0. int cf_find_file_location( const char *filespec, int pathtype, char *pack_filename, int *size, int *offset, bool localize = false); -// Functions to change directories -int cfile_chdir(char *dir); -int cfile_chdrive(int DriveNum, int flag); - -// push current directory on a 'stack' (so we can restore it) and change the directory -int cfile_push_chdir(int type); - -// restore directory on top of the stack -int cfile_pop_dir(); - // initializes Cfile_root_dir[] and Cfile_user_dir[] int cfile_init_paths(); +// Creates the directory path if it doesn't exist. Even creates all its +// parent paths. +void cf_create_directory( int dir_type ); + #endif /* __CFILE_H__ */ diff --git a/include/floating.h b/include/floating.h index 9beba20..320e493 100644 --- a/include/floating.h +++ b/include/floating.h @@ -72,7 +72,7 @@ extern int rand_chance(float frametime, float chance = 1.0f); float frand_range(float min, float max); // determine if a floating point number is NaN (Not a Number) -#define fl_is_nan(fl) _isnan(fl) +#define fl_is_nan(fl) isnan(fl) // Handy macros to prevent type casting all over the place diff --git a/include/inetgetfile.h b/include/inetgetfile.h index 10dfd37..c44032a 100644 --- a/include/inetgetfile.h +++ b/include/inetgetfile.h @@ -52,12 +52,12 @@ class InetGetFile { public: - InetGetFile(char *URL,char *localfile); + InetGetFile(char *URL, char *filename, int cf_type = 1 /* CF_TYPE_ROOT */); ~InetGetFile(); - BOOL IsFileReceived(); - BOOL IsFileError(); - BOOL IsConnecting(); - BOOL IsReceiving(); + bool IsFileReceived(); + bool IsFileError(); + bool IsConnecting(); + bool IsReceiving(); int GetErrorCode(); int GetBytesIn(); int GetTotalBytes(); @@ -66,7 +66,7 @@ public: protected: CFtpGet *ftp; ChttpGet *http; - BOOL m_bUseHTTP; + bool m_bUseHTTP; int m_ErrorCode; int m_State; int m_HardError; diff --git a/include/platform.h b/include/platform.h new file mode 100644 index 0000000..c763ff1 --- /dev/null +++ b/include/platform.h @@ -0,0 +1,25 @@ +#ifndef PLATFORM_H +#define PLATFORM_H + + +#include // For NULL, etc +#include +#include + +#ifndef __APPLE__ +#include +#endif + +#include + +#ifdef PLAT_UNIX +#include "unix.h" +#else +#include "win.h" +#endif + + +void base_filename(const char *path, char *filename, const int max_fname); + + +#endif // PLATFORM_H diff --git a/include/pstypes.h b/include/pstypes.h index 320074d..46d4d87 100644 --- a/include/pstypes.h +++ b/include/pstypes.h @@ -238,28 +238,8 @@ #include "SDL.h" -#include // For NULL, etc -#include -#include +#include "platform.h" -#ifndef __APPLE__ -#include -#endif - -#include - -#ifdef PLAT_UNIX -#include "unix.h" -#endif - -// same thing that's in FS2_Open (credit: Mike Harris) -#ifdef PLAT_UNIX -#define DIR_SEPARATOR_CHAR '/' -#define DIR_SEPARATOR_STR "/" -#else -#define DIR_SEPARATOR_CHAR '\\' -#define DIR_SEPARATOR_STR "\\" -#endif // value to represent an uninitialized state in any int or uint #define UNINITIALIZED 0x7f8e6d9c @@ -273,9 +253,7 @@ #define MAX_TEAMS 3 #define USE_INLINE_ASM 1 // Define this to use inline assembly -#define STRUCT_CMP(a, b) memcmp((void *) &a, (void *) &b, sizeof(a)) -#define LOCAL static // make module local varilable static. typedef Sint32 fix; typedef Uint8 ubyte; @@ -311,15 +289,6 @@ typedef struct vectora { float xyz[3]; } vectora; -typedef struct vec2d { - float i,j; -} vec2d; - -// Used for some 2d primitives, like gr_poly -typedef struct vert2df { - float x, y; -} vert2df; - typedef struct angles { float p, b, h; } angles_t; diff --git a/include/unix.h b/include/unix.h index c49a980..a0c147d 100644 --- a/include/unix.h +++ b/include/unix.h @@ -3,47 +3,23 @@ #ifndef _UNIX_H #define _UNIX_H -#include -#include -#include -#include +// same thing that's in FS2_Open (credit: Mike Harris) +#define DIR_SEPARATOR_CHAR '/' +#define DIR_SEPARATOR_STR "/" -#define _MAX_FNAME 255 -#define _MAX_PATH 255 -#define MAX_PATH 255 #define __cdecl -#define _isnan isnan #define HANDLE int -#define _getcwd getcwd -#define _chdir chdir -#define _unlink unlink -#define _hypot hypot -#define _access access -#define byte unsigned char extern int filelength (int fd); -extern int WSAGetLastError (); -extern void _splitpath (const char *path, char *drive, char *dir, char *fname, char *ext); -#define _mkdir(A) mkdir(A,0700) #define ioctlsocket(A,B,C) ioctl(A,B,C) #define closesocket(A) close(A) -#define CopyMemory(A,B,C) memcpy(A,B,C) -#define UINT unsigned int #define SOCKET int -#define SOCKADDR_IN struct sockaddr_in -#define SOCKADDR struct sockaddr -#define LPSOCKADDR struct sockaddr* -#define LPHOSTENT struct hostent* -#define HOSTENT struct hostent -#define LPINADDR struct in_addr* -#define LPIN_ADDR struct in_addr* #define SOCKET_ERROR -1 #define INVALID_SOCKET -1 -#define TIMEVAL struct timeval -#define SERVENT struct servent -#define BOOL int + +extern int WSAGetLastError (); #define WSAEALREADY EALREADY #define WSAEINVAL EINVAL @@ -54,4 +30,4 @@ extern void _splitpath (const char *path, char *drive, char *dir, char *fname, c #define WSAESHUTDOWN ESHUTDOWN #define WSAENOTSOCK ENOTSOCK -#endif +#endif // _UNIX_H diff --git a/include/vecmat.h b/include/vecmat.h index b3458cc..f4a83e2 100644 --- a/include/vecmat.h +++ b/include/vecmat.h @@ -186,7 +186,7 @@ //#define _INLINE_VECMAT -#define vm_is_vec_nan(v) (_isnan((v)->xyz.x) || _isnan((v)->xyz.y) || _isnan((v)->xyz.z)) +#define vm_is_vec_nan(v) (isnan((v)->xyz.x) || isnan((v)->xyz.y) || isnan((v)->xyz.z)) //Macros/functions to fill in fields of structures diff --git a/include/win.h b/include/win.h new file mode 100644 index 0000000..bdb807e --- /dev/null +++ b/include/win.h @@ -0,0 +1,15 @@ +#ifndef WIN_H +#define WIN_H + + +// same thing that's in FS2_Open (credit: Mike Harris) +#define DIR_SEPARATOR_CHAR '\\' +#define DIR_SEPARATOR_STR "\\" + +#define mkdir(A,B) _mkdir(A) + +#define isnan _isnan +#define unlink _unlink +#define access _access + +#endif // WIN_H diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 5086c85..cfef896 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -234,18 +234,12 @@ set(code_SOURCE ) -if(WIN32) - set(platform_SOURCE - ${CMAKE_CURRENT_SOURCE_DIR}/platform/platform.cpp - PARENT_SCOPE - ) -else() - set(platform_SOURCE - ${CMAKE_CURRENT_SOURCE_DIR}/platform/platform.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/platform/unix.cpp - PARENT_SCOPE - ) -endif() +set(platform_SOURCE + ${CMAKE_CURRENT_SOURCE_DIR}/platform/platform.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/platform/unix.cpp + PARENT_SCOPE +) + # # the game itself diff --git a/src/anim/animplay.cpp b/src/anim/animplay.cpp index 6c4064e..a9de1ed 100644 --- a/src/anim/animplay.cpp +++ b/src/anim/animplay.cpp @@ -886,7 +886,7 @@ anim *anim_load(const char *real_filename, int file_mapped) anim *ptr; CFILE *fp; int count,idx; - char name[_MAX_PATH]; + char name[MAX_PATH_LEN]; // file_mapped = 0; @@ -918,7 +918,6 @@ anim *anim_load(const char *real_filename, int file_mapped) ptr->flags = 0; ptr->next = first_anim; first_anim = ptr; - SDL_assert(strlen(name) < _MAX_PATH - 1); SDL_strlcpy(ptr->name, name, sizeof(ptr->name)); ptr->instance_count = 0; ptr->width = 0; diff --git a/src/cfile/cfile.cpp b/src/cfile/cfile.cpp index 2c9bdb0..c815a4d 100644 --- a/src/cfile/cfile.cpp +++ b/src/cfile/cfile.cpp @@ -220,6 +220,8 @@ #include /* needed for memory mapping of file functions */ #else #include +#include +#include #include #include #endif @@ -299,9 +301,6 @@ cf_pathtype Pathtypes[CF_MAX_PATH_TYPES] = { #define CFILE_STACK_MAX 8 int cfile_inited = 0; -static int Cfile_stack_pos = 0; - -static char Cfile_stack[CFILE_STACK_MAX][MAX_PATH_LEN]; Cfile_block Cfile_block_list[MAX_CFILE_BLOCKS]; CFILE Cfile_list[MAX_CFILE_BLOCKS]; @@ -399,166 +398,75 @@ int cfile_init(const char *extras_dir) } -// Changes to a drive if valid.. 1=A, 2=B, etc -// If flag, then changes to it. -// Returns 0 if not-valid, 1 if valid. -int cfile_chdrive( int DriveNum, int flag ) -{ -#ifdef PLAT_UNIX - STUB_FUNCTION; - return 0; -#else - int n, org; - int Valid = 0; - - org = -1; - if (!flag) - org = _getdrive(); - - _chdrive( DriveNum ); - n = _getdrive(); - - - if (n == DriveNum ) - Valid = 1; - - if ( (!flag) && (n != org) ) - _chdrive( org ); - return Valid; -#endif -} - -// push current directory on a 'stack' (so we can restore it) and change the directory -int cfile_push_chdir(int type) +// flush (delete all files in) the passed directory (by type), return the # of files deleted +// NOTE : WILL NOT DELETE READ-ONLY FILES +int cfile_flush_dir(int dir_type) { - int e; - char dir[128]; - char OriginalDirectory[128]; - char *Path; - char NoDir[] = "\\."; - - _getcwd(OriginalDirectory, 127); - SDL_assert(Cfile_stack_pos < CFILE_STACK_MAX); - SDL_strlcpy(Cfile_stack[Cfile_stack_pos++], OriginalDirectory, MAX_PATH_LEN); - - cf_create_default_path_string( dir, type, NULL ); - SDL_strlwr(dir); -#ifndef PLAT_UNIX - char *Drive = SDL_strchr(dir, ':'); - - if (Drive) { - if (!cfile_chdrive( *(Drive - 1) - 'a' + 1, 1)) - return 1; - - Path = Drive+1; - - } else -#endif - { - Path = dir; - } - - if (!(*Path)) { - Path = NoDir; - } - - // This chdir might get a critical error! - e = _chdir( Path ); - if (e) { - cfile_chdrive( OriginalDirectory[0] - 'a' + 1, 1 ); - return 2; - } - - return 0; -} + char filespec[MAX_PATH_LEN]; + int del_count; + SDL_assert( CF_TYPE_SPECIFIED(dir_type) ); -int cfile_chdir(char *dir) -{ - int e; - char OriginalDirectory[128]; - char *Path; - char NoDir[] = "\\."; + cf_create_default_path_string(filespec, dir_type); - _getcwd(OriginalDirectory, 127); - SDL_strlwr(dir); + // proceed to delete the files + del_count = 0; -#ifndef PLAT_UNIX - char *Drive = SDL_strchr(dir, ':'); - if (Drive) { - if (!cfile_chdrive( *(Drive - 1) - 'a' + 1, 1)) - return 1; +#ifdef PLAT_UNIX + DIR *dirp; + struct dirent *dir; + + dirp = opendir(filespec); + if (dirp) { + while ( (dir = readdir(dirp)) != NULL ) { + if ( !fnmatch("*", dir->d_name, 0) ) { + char fn[MAX_PATH_LEN]; + SDL_snprintf(fn, MAX_PATH_LEN, "%s/%s", filespec, dir->d_name); + + struct stat buf; + if (stat(fn, &buf) == -1) { + continue; + } - Path = Drive+1; + if (!S_ISREG(buf.st_mode)) { + continue; + } - } else -#endif - { - Path = dir; - } + // delete the file + cf_delete(dir->d_name, dir_type); - if (!(*Path)) { - Path = NoDir; - } + // increment the deleted count + del_count++; + } + } - // This chdir might get a critical error! - e = _chdir( Path ); - if (e) { - cfile_chdrive( OriginalDirectory[0] - 'a' + 1, 1 ); - return 2; + closedir(dirp); } - - return 0; -} - -int cfile_pop_dir() -{ - SDL_assert(Cfile_stack_pos); - Cfile_stack_pos--; - return cfile_chdir(Cfile_stack[Cfile_stack_pos]); -} - -// flush (delete all files in) the passed directory (by type), return the # of files deleted -// NOTE : WILL NOT DELETE READ-ONLY FILES -int cfile_flush_dir(int dir_type) -{ -#ifdef PLAT_UNIX - STUB_FUNCTION; - return 0; #else int find_handle; - int del_count; _finddata_t find; - SDL_assert( CF_TYPE_SPECIFIED(dir_type) ); + SDL_strlcat( filespec, "*", sizeof(filespec) ); - // attempt to change the directory to the passed type - if(cfile_push_chdir(dir_type)){ - return 0; - } + find_handle = _findfirst( filespec, &find ); - // proceed to delete the files - find_handle = _findfirst( "*", &find ); - del_count = 0; if (find_handle != -1) { - do { + do { if (!(find.attrib & _A_SUBDIR) && !(find.attrib & _A_RDONLY)) { // delete the file - cf_delete(find.name,dir_type); + cf_delete(find.name, dir_type); // increment the deleted count del_count++; } } while (!_findnext(find_handle, &find)); + _findclose( find_handle ); } - - // pop the directory back - cfile_pop_dir(); +#endif // return the # of files deleted return del_count; -#endif } @@ -597,7 +505,7 @@ void cf_delete( const char *filename, int dir_type ) if (fp) { // delete the file fclose(fp); - _unlink(longname); + unlink(longname); } } @@ -639,8 +547,8 @@ int cf_rename(const char *old_name, const char *name, int dir_type) SDL_assert( CF_TYPE_SPECIFIED(dir_type) ); int ret_code; - char old_longname[_MAX_PATH]; - char new_longname[_MAX_PATH]; + char old_longname[MAX_PATH_LEN]; + char new_longname[MAX_PATH_LEN]; cf_create_default_path_string( old_longname, dir_type, old_name ); cf_create_default_path_string( new_longname, dir_type, name ); @@ -687,7 +595,7 @@ void cf_create_directory( int dir_type ) for (i=num_dirs-1; i>=0; i-- ) { cf_create_default_path_string( longname, dir_tree[i], NULL ); - if ( _mkdir(longname)==0 ) { + if ( mkdir(longname, 0700) == 0 ) { mprintf(( "CFILE: Created new directory '%s'\n", longname )); } } @@ -714,7 +622,7 @@ void cf_create_directory( int dir_type ) CFILE *cfopen(const char *file_path, const char *mode, int type, int dir_type, bool localize) { - char longname[_MAX_PATH]; + char longname[MAX_PATH_LEN]; // nprintf(("CFILE", "CFILE -- trying to open %s\n", file_path )); // #if !defined(MULTIPLAYER_BETA_BUILD) && !defined(FS2_DEMO) diff --git a/src/cfile/cfilelist.cpp b/src/cfile/cfilelist.cpp index 54b71f0..7625523 100644 --- a/src/cfile/cfilelist.cpp +++ b/src/cfile/cfilelist.cpp @@ -330,7 +330,7 @@ int cfread_compressed(void *buf, int elsize, int nelem, CFILE *cfile) while(1) { - byte count; + ubyte count; if ( cfread( &count, 1, 1, cfile ) != 1 ) { break; @@ -343,7 +343,7 @@ int cfread_compressed(void *buf, int elsize, int nelem, CFILE *cfile) if ( count > 0 ) { if ( run_span ) { // RLE'd data - byte c; + ubyte c; if ( cfread( &c, 1, 1, cfile ) != 1 ) { break; } diff --git a/src/cfile/cfilesystem.cpp b/src/cfile/cfilesystem.cpp index 6ad6dab..3a54535 100644 --- a/src/cfile/cfilesystem.cpp +++ b/src/cfile/cfilesystem.cpp @@ -375,7 +375,7 @@ void cf_build_pack_list( cf_root *root ) { SDL_assert(root_index < temp_root_count); - char fn[MAX_PATH]; + char fn[MAX_PATH_LEN]; SDL_snprintf(fn, sizeof(fn), "%s/%s", filespec, dir->d_name); struct stat buf; @@ -572,8 +572,8 @@ void cf_search_root_path(int root_index) { if (!fnmatch ("*.*", dir->d_name, 0)) { - char fn[MAX_PATH]; - SDL_snprintf(fn, MAX_PATH, "%s/%s", search_path, dir->d_name); + char fn[MAX_PATH_LEN]; + SDL_snprintf(fn, MAX_PATH_LEN, "%s/%s", search_path, dir->d_name); struct stat buf; if (stat(fn, &buf) == -1) { @@ -1050,8 +1050,8 @@ int cf_get_file_list( int max, char **list, int pathtype, const char *filter, in if (fnmatch(filter, dir->d_name, 0) != 0) continue; - char fn[MAX_PATH]; - SDL_snprintf(fn, MAX_PATH, "%s/%s", filespec, dir->d_name); + char fn[MAX_PATH_LEN]; + SDL_snprintf(fn, MAX_PATH_LEN, "%s/%s", filespec, dir->d_name); struct stat buf; if (stat(fn, &buf) == -1) { @@ -1234,8 +1234,8 @@ int cf_get_file_list_preallocated( int max, char arr[][MAX_FILENAME_LEN], char * if (fnmatch(filter, dir->d_name, 0) != 0) continue; - char fn[MAX_PATH]; - SDL_snprintf(fn, MAX_PATH, "%s/%s", filespec, dir->d_name); + char fn[MAX_PATH_LEN]; + SDL_snprintf(fn, MAX_PATH_LEN, "%s/%s", filespec, dir->d_name); struct stat buf; if (stat(fn, &buf) == -1) { diff --git a/src/freespace2/freespace.cpp b/src/freespace2/freespace.cpp index 8333c43..8b56a2c 100644 --- a/src/freespace2/freespace.cpp +++ b/src/freespace2/freespace.cpp @@ -847,7 +847,7 @@ extern void ssm_process(); // static variable to contain the time this version was built // commented out for now until // I figure out how to get the username into the file -//LOCAL char freespace_build_time[] = "Compiled on:"__DATE__" "__TIME__" by "__USER__; +//static char freespace_build_time[] = "Compiled on:"__DATE__" "__TIME__" by "__USER__; // defines and variables used for dumping frame for making trailers. #ifndef NDEBUG @@ -2410,7 +2410,7 @@ void game_init() // check if sparky_hi exists -- access mode 0 means does file exist #ifndef MAKE_FS1 // shoudn't have it so don't check - char sparky_path[MAX_PATH]; + char sparky_path[MAX_PATH_LEN]; SDL_snprintf(sparky_path, sizeof(sparky_path), "%s%s%s", Cfile_root_dir, DIR_SEPARATOR_STR, "sparky_hi_fs2.vp"); if ( access(sparky_path, 0) == 0 ) { diff --git a/src/gamesequence/gamesequence.cpp b/src/gamesequence/gamesequence.cpp index a208e5b..681c59d 100644 --- a/src/gamesequence/gamesequence.cpp +++ b/src/gamesequence/gamesequence.cpp @@ -257,8 +257,8 @@ typedef struct state_stack { } state_stack; // DO NOT MAKE THIS NON-STATIC!!!! -LOCAL state_stack gs[GS_STACK_SIZE]; -LOCAL int gs_current_stack = -1; // index of top state on stack. +static state_stack gs[GS_STACK_SIZE]; +static int gs_current_stack = -1; // index of top state on stack. static int state_reentry = 0; // set if we are already in state processing static int state_processing_event_post = 0; // set if we are already processing an event to switch states diff --git a/src/hud/hudbrackets.cpp b/src/hud/hudbrackets.cpp index e778577..906690d 100644 --- a/src/hud/hudbrackets.cpp +++ b/src/hud/hudbrackets.cpp @@ -464,8 +464,8 @@ void draw_brackets_diamond(int x1, int y1, int x2, int y2) half_width = fl2i( width/2.0f + 0.5f ); half_height = fl2i( height/2.0f +0.5f ); - side_len = (float)_hypot(half_width, half_height); - bracket_len = side_len / 8; + side_len = hypotf(i2fl(half_width), i2fl(half_height)); + bracket_len = side_len / 8.0f; x_delta = fl2i(bracket_len * width / side_len + 0.5f); y_delta = fl2i(bracket_len * height / side_len + 0.5f); @@ -505,8 +505,8 @@ void draw_brackets_diamond_quick(int x1, int y1, int x2, int y2, int thick) half_width = fl2i( width/2.0f + 0.5f); half_height = fl2i( height/2.0f + 0.5f); - side_len = (float)_hypot(half_width, half_height); - bracket_len = side_len / 8; + side_len = hypotf(i2fl(half_width), i2fl(half_height)); + bracket_len = side_len / 8.0f; x_delta = fl2i(bracket_len * width / side_len + 0.5f); y_delta = fl2i(bracket_len * height / side_len + 0.5f); diff --git a/src/hud/hudlock.cpp b/src/hud/hudlock.cpp index 8b2a221..13c5af2 100644 --- a/src/hud/hudlock.cpp +++ b/src/hud/hudlock.cpp @@ -903,7 +903,7 @@ void hud_calculate_lock_position(float frametime) static float catch_up_distance = 0.0f; - double hypotenuse, delta_x, delta_y; + float hypotenuse, delta_x, delta_y; swp = &Player_ship->weapons; wip = &Weapon_info[swp->secondary_bank_weapons[swp->current_secondary_bank]]; @@ -929,17 +929,17 @@ void hud_calculate_lock_position(float frametime) return; } - delta_x = Players[Player_num].lock_indicator_x - Player->current_target_sx; - delta_y = Players[Player_num].lock_indicator_y - Player->current_target_sy; + delta_x = i2fl(Players[Player_num].lock_indicator_x - Player->current_target_sx); + delta_y = i2fl(Players[Player_num].lock_indicator_y - Player->current_target_sy); if (!delta_y && !delta_x) { hypotenuse = 0.0f; } else { - hypotenuse = _hypot(delta_y, delta_x); + hypotenuse = hypotf(delta_y, delta_x); } - Players[Player_num].lock_dist_to_target = (float)hypotenuse; + Players[Player_num].lock_dist_to_target = hypotenuse; if (last_dist_to_target == 0) { last_dist_to_target = Players[Player_num].lock_dist_to_target; @@ -986,11 +986,11 @@ void hud_calculate_lock_position(float frametime) pixels_moved_while_locking = lock_pixels_per_sec * frametime; } - if (delta_x != 0) { + if (delta_x != 0.0f) { accumulated_x_pixels += pixels_moved_while_locking * delta_x/hypotenuse; } - if (delta_y != 0) { + if (delta_y != 0.0f) { accumulated_y_pixels += pixels_moved_while_locking * delta_y/hypotenuse; } @@ -1053,14 +1053,14 @@ void hud_calculate_lock_position(float frametime) accumulated_y_pixels = 0.0f; } - delta_x = Players[Player_num].lock_indicator_x - Players[Player_num].lock_indicator_start_x; - delta_y = Players[Player_num].lock_indicator_y - Players[Player_num].lock_indicator_start_y; + delta_x = i2fl(Players[Player_num].lock_indicator_x - Players[Player_num].lock_indicator_start_x); + delta_y = i2fl(Players[Player_num].lock_indicator_y - Players[Player_num].lock_indicator_start_y); if (!delta_y && !delta_x) { hypotenuse = 0.0f; } else { - hypotenuse = _hypot(delta_y, delta_x); + hypotenuse = hypotf(delta_y, delta_x); } Players[Player_num].lock_time_to_target += frametime; @@ -1070,10 +1070,10 @@ void hud_calculate_lock_position(float frametime) pixels_moved_while_degrading = 2.0f * wip->lock_pixels_per_sec * frametime; - if (delta_x != 0) + if (delta_x != 0.0f) accumulated_x_pixels += pixels_moved_while_degrading * delta_x/hypotenuse; - if (delta_y != 0) + if (delta_y != 0.0f) accumulated_y_pixels += pixels_moved_while_degrading * delta_y/hypotenuse; if (fl_abs(accumulated_x_pixels) > 1.0f) { @@ -1110,10 +1110,10 @@ void hud_calculate_lock_position(float frametime) // origin, and connects the target and lock indicator postion (and has a magnitude of Lock_start_dist) void hud_calculate_lock_start_pos() { - double hypotenuse; - double delta_y; - double delta_x; - double target_mag, target_x, target_y; + float hypotenuse; + float delta_y; + float delta_x; + float target_mag, target_x, target_y; delta_x = Player->current_target_sx - SCREEN_CENTER_X; delta_y = Player->current_target_sy - SCREEN_CENTER_Y; @@ -1124,7 +1124,7 @@ void hud_calculate_lock_start_pos() return; } - hypotenuse = _hypot(delta_y, delta_x); + hypotenuse = hypotf(delta_y, delta_x); if (hypotenuse >= Lock_start_dist) { Players[Player_num].lock_indicator_start_x = fl2i(SCREEN_CENTER_X); diff --git a/src/hud/hudsquadmsg.cpp b/src/hud/hudsquadmsg.cpp index 2175968..e1fb24c 100644 --- a/src/hud/hudsquadmsg.cpp +++ b/src/hud/hudsquadmsg.cpp @@ -280,20 +280,20 @@ #define DEFAULT_MSG_TIMEOUT (8 * 1000) // number of seconds * 1000 to get milliseconds #define MSG_KEY_EAT_TIME (300) -LOCAL int Squad_msg_mode; // current mode that the messaging system is in -LOCAL int Msg_key_used; // local variable which tells if the key being processed +static int Squad_msg_mode; // current mode that the messaging system is in +static int Msg_key_used; // local variable which tells if the key being processed // with the messaging system was actually used -LOCAL int Msg_key; // global which indicates which key was currently pressed -LOCAL int Msg_mode_timestamp; -LOCAL int Msg_instance; // variable which holds ship/wing instance to send the message to -LOCAL int Msg_shortcut_command; // holds command when using a shortcut key -LOCAL int Msg_target_objnum; // id of the current target of the player -LOCAL ship_subsys *Msg_targeted_subsys;// pointer to current subsystem which is targeted +static int Msg_key; // global which indicates which key was currently pressed +static int Msg_mode_timestamp; +static int Msg_instance; // variable which holds ship/wing instance to send the message to +static int Msg_shortcut_command; // holds command when using a shortcut key +static int Msg_target_objnum; // id of the current target of the player +static ship_subsys *Msg_targeted_subsys;// pointer to current subsystem which is targeted //#ifndef NDEBUG -LOCAL int Msg_enemies; // tells us whether or not to message enemy ships or friendlies +static int Msg_enemies; // tells us whether or not to message enemy ships or friendlies //#endif -LOCAL int Msg_eat_key_timestamp; // used to temporarily "eat" keys +static int Msg_eat_key_timestamp; // used to temporarily "eat" keys // defined to position the messaging box int Mbox_item_h[GR_NUM_RESOLUTIONS] = { diff --git a/src/inetfile/cftp.cpp b/src/inetfile/cftp.cpp index 30b7442..f46ae29 100644 --- a/src/inetfile/cftp.cpp +++ b/src/inetfile/cftp.cpp @@ -110,7 +110,7 @@ void CFtpGet::AbortGet() CFtpGet::CFtpGet(char *URL,char *localfile,char *Username,char *Password) { - SOCKADDR_IN listensockaddr; + struct sockaddr_in listensockaddr; m_State = FTP_STATE_STARTUP; m_ListenSock = INVALID_SOCKET; @@ -160,7 +160,7 @@ CFtpGet::CFtpGet(char *URL,char *localfile,char *Username,char *Password) listensockaddr.sin_addr.s_addr = INADDR_ANY; // Bind the listen socket - if (bind(m_ListenSock, (SOCKADDR *)&listensockaddr, sizeof(SOCKADDR))) + if (bind(m_ListenSock, (struct sockaddr *)&listensockaddr, sizeof(struct sockaddr))) { //Couldn't bind the socket // int iWinsockErr = WSAGetLastError(); @@ -377,7 +377,7 @@ unsigned int CFtpGet::GetFile() if(m_Aborting) return 0; - m_DataSock = accept(m_ListenSock, NULL,NULL);//(SOCKADDR *)&sockaddr,&iAddrLength); + m_DataSock = accept(m_ListenSock, NULL,NULL);//(struct sockaddr *)&sockaddr,&iAddrLength); // Close the listen socket closesocket(m_ListenSock); if (m_DataSock == INVALID_SOCKET) @@ -398,19 +398,19 @@ unsigned int CFtpGet::IssuePort() { char szCommandString[200]; - SOCKADDR_IN listenaddr; // Socket address structure + struct sockaddr_in listenaddr; // Socket address structure #ifndef PLAT_UNIX int iLength; // Length of the address structure #else socklen_t iLength; #endif - UINT nLocalPort; // Local port for listening - UINT nReplyCode; // FTP server reply code + uint nLocalPort; // Local port for listening + uint nReplyCode; // FTP server reply code // Get the address for the hListenSocket iLength = sizeof(listenaddr); - if (getsockname(m_ListenSock, (LPSOCKADDR)&listenaddr,&iLength) == SOCKET_ERROR) + if (getsockname(m_ListenSock, (struct sockaddr*)&listenaddr, &iLength) == SOCKET_ERROR) { // int iWinsockErr = WSAGetLastError(); m_State = FTP_STATE_SOCKET_ERROR; @@ -422,7 +422,7 @@ unsigned int CFtpGet::IssuePort() // Now, reuse the socket address structure to // get the IP address from the control socket. - if (getsockname(m_ControlSock, (LPSOCKADDR)&listenaddr,&iLength) == SOCKET_ERROR) + if (getsockname(m_ControlSock, (struct sockaddr*)&listenaddr, &iLength) == SOCKET_ERROR) { // int iWinsockErr = WSAGetLastError(); m_State = FTP_STATE_SOCKET_ERROR; @@ -461,9 +461,9 @@ unsigned int CFtpGet::IssuePort() int CFtpGet::ConnectControlSocket() { - HOSTENT *he; - SERVENT *se; - SOCKADDR_IN hostaddr; + struct hostent *he; + struct servent *se; + struct sockaddr_in hostaddr; he = gethostbyname(m_szHost); if(he == NULL) { @@ -488,7 +488,7 @@ int CFtpGet::ConnectControlSocket() if(m_Aborting) return 0; //Now we will connect to the host - if(connect(m_ControlSock, (SOCKADDR *)&hostaddr, sizeof(SOCKADDR))) + if(connect(m_ControlSock, (struct sockaddr *)&hostaddr, sizeof(struct sockaddr))) { // int iWinsockErr = WSAGetLastError(); m_State = FTP_STATE_CANT_CONNECT; @@ -637,7 +637,7 @@ unsigned int CFtpGet::ReadDataChannel() void CFtpGet::FlushControlChannel() { fd_set read_fds; - TIMEVAL timeout; + struct timeval timeout; char flushbuff[3]; timeout.tv_sec=0; diff --git a/src/inetfile/chttpget.cpp b/src/inetfile/chttpget.cpp index 6ce2fcf..f1b2d0d 100644 --- a/src/inetfile/chttpget.cpp +++ b/src/inetfile/chttpget.cpp @@ -409,10 +409,9 @@ void ChttpGet::WorkerThread() int ChttpGet::ConnectSocket() { - //HOSTENT *he; unsigned int ip; - SERVENT *se; - SOCKADDR_IN hostaddr; + struct servent *se; + struct sockaddr_in hostaddr; if(m_Aborting){ return 0; } @@ -500,7 +499,7 @@ int ChttpGet::ConnectSocket() timeval timeout; timeout.tv_sec = 0; timeout.tv_usec = 0; - int serr = connect(m_DataSock, (SOCKADDR *)&hostaddr, sizeof(SOCKADDR)); + int serr = connect(m_DataSock, (struct sockaddr *)&hostaddr, sizeof(struct sockaddr)); int cerr = WSAGetLastError(); if(serr) { @@ -515,7 +514,7 @@ int ChttpGet::ConnectSocket() } if(m_Aborting) return 0; - serr = connect(m_DataSock, (SOCKADDR *)&hostaddr, sizeof(SOCKADDR)); + serr = connect(m_DataSock, (struct sockaddr *)&hostaddr, sizeof(struct sockaddr)); if(serr == 0) break; cerr = WSAGetLastError(); @@ -745,7 +744,7 @@ int http_Asyncgethostbyname(unsigned int *ip,int command, char *hostname) int http_gethostbynameworker(void *parm) { async_dns_lookup *lookup = (async_dns_lookup *)parm; - HOSTENT *he = gethostbyname(lookup->host); + struct hostent *he = gethostbyname(lookup->host); if(he==NULL) { lookup->error = true; diff --git a/src/inetfile/inetgetfile.cpp b/src/inetfile/inetgetfile.cpp index 0cd0a82..5a87a57 100644 --- a/src/inetfile/inetgetfile.cpp +++ b/src/inetfile/inetgetfile.cpp @@ -65,6 +65,8 @@ #include #include "pstypes.h" +#include "cfile.h" +#include "cfilesystem.h" #include "cftp.h" #include "chttpget.h" @@ -88,37 +90,24 @@ void InetGetFile::AbortGet() } } -InetGetFile::InetGetFile(char *URL,char *localfile) +InetGetFile::InetGetFile(char *URL, char *filename, int cf_type) { m_HardError = 0; http=NULL; ftp=NULL; - if ((URL==NULL)||(localfile==NULL)) { + if ( (URL == NULL) || (filename == NULL) || !CF_TYPE_SPECIFIED(cf_type) ) { m_HardError = INET_ERROR_BADPARMS; } // create directory if not already there. - char dir_name[256], *end; + cf_create_directory(cf_type); - // make sure localfile has \ in it or we'll be here a long time. - if (strstr(localfile, DIR_SEPARATOR_STR)) { - SDL_strlcpy(dir_name, localfile, sizeof(dir_name)); - int len = strlen(localfile); - end = dir_name + len; - - // start from end of localfile and go to first \ to get dirname - while ( *end != DIR_SEPARATOR_CHAR ) { - end--; - } - *end = '\0'; - - if ( _mkdir(dir_name)==0 ) { - mprintf(( "CFILE: Created new directory '%s'\n", dir_name )); - } - } + // create full path for file + char localfile[MAX_PATH_LEN] = ""; + cf_create_default_path_string(localfile, cf_type, filename); if (strstr(URL,"http:")) { - m_bUseHTTP = TRUE; + m_bUseHTTP = true; // using http proxy? extern char Multi_options_proxy[512]; @@ -133,7 +122,7 @@ InetGetFile::InetGetFile(char *URL,char *localfile) m_HardError = INET_ERROR_NO_MEMORY; } } else if (strstr(URL,"ftp:")) { - m_bUseHTTP = FALSE; + m_bUseHTTP = false; ftp = new CFtpGet(URL,localfile); if (ftp==NULL) { m_HardError = INET_ERROR_NO_MEMORY; @@ -150,7 +139,7 @@ InetGetFile::~InetGetFile() if(ftp!=NULL) delete ftp; } -BOOL InetGetFile::IsConnecting() +bool InetGetFile::IsConnecting() { int state; if(m_bUseHTTP) @@ -163,16 +152,16 @@ BOOL InetGetFile::IsConnecting() } if(state == FTP_STATE_CONNECTING) { - return TRUE; + return true; } else { - return FALSE; + return false; } } -BOOL InetGetFile::IsReceiving() +bool InetGetFile::IsReceiving() { int state; if(m_bUseHTTP) @@ -185,15 +174,15 @@ BOOL InetGetFile::IsReceiving() } if(state == FTP_STATE_RECEIVING) { - return TRUE; + return true; } else { - return FALSE; + return false; } } -BOOL InetGetFile::IsFileReceived() +bool InetGetFile::IsFileReceived() { int state; if(m_bUseHTTP) @@ -206,18 +195,18 @@ BOOL InetGetFile::IsFileReceived() } if(state == FTP_STATE_FILE_RECEIVED) { - return TRUE; + return true; } else { - return FALSE; + return false; } } -BOOL InetGetFile::IsFileError() +bool InetGetFile::IsFileError() { int state; - if(m_HardError) return TRUE; + if(m_HardError) return true; if(m_bUseHTTP) { state = http->GetStatus(); @@ -240,11 +229,11 @@ BOOL InetGetFile::IsFileError() case FTP_STATE_UNKNOWN_ERROR: case FTP_STATE_RECV_FAILED: case FTP_STATE_CANT_WRITE_FILE: - return TRUE; + return true; case FTP_STATE_CONNECTING: - return FALSE; + return false; default: - return FALSE; + return false; } } diff --git a/src/math/vecmat.cpp b/src/math/vecmat.cpp index fe3a884..a88c4b1 100644 --- a/src/math/vecmat.cpp +++ b/src/math/vecmat.cpp @@ -1750,7 +1750,7 @@ void vm_matrix_to_rot_axis_and_angle(matrix *m, float *theta, vector *rot_axis) (void) vm_vec_make(rot_axis, 1.0f, 0.0f, 0.0f); } else if (cos_theta > -0.999999875f) { // angle is within limits between 0 and PI *theta = float(acos(cos_theta)); - SDL_assert(!_isnan(*theta)); + SDL_assert(!isnan(*theta)); rot_axis->xyz.x = (m->v.uvec.xyz.z - m->v.fvec.xyz.y); rot_axis->xyz.y = (m->v.fvec.xyz.x - m->v.rvec.xyz.z); @@ -2667,7 +2667,7 @@ void vm_find_bounding_sphere(vector *pnts, int num_pnts, vector *center, float * vm_vec_sub(&diff, &dia2, center); rad_sq = vm_vec_mag_squared(&diff); rad = fl_sqrt(rad_sq); - SDL_assert( !_isnan(rad) ); + SDL_assert( !isnan(rad) ); // second pass for ( i = 0; i < num_pnts; i++ ) { @@ -2745,7 +2745,7 @@ void vm_estimate_next_orientation(matrix *last_orient, matrix *current_orient, m // Return true if all elements of *vec are legal, that is, not a NAN. int is_valid_vec(vector *vec) { - return !_isnan(vec->xyz.x) && !_isnan(vec->xyz.y) && !_isnan(vec->xyz.z); + return !isnan(vec->xyz.x) && !isnan(vec->xyz.y) && !isnan(vec->xyz.z); } // Return true if all elements of *m are legal, that is, not a NAN. diff --git a/src/mission/missionbriefcommon.cpp b/src/mission/missionbriefcommon.cpp index b8a4779..e01f968 100644 --- a/src/mission/missionbriefcommon.cpp +++ b/src/mission/missionbriefcommon.cpp @@ -2435,7 +2435,7 @@ grid *brief_create_grid(grid *gridp, vector *forward, vector *right, vector *cen gridp->gmatrix.v.uvec = uvec; gridp->planeD = -(center->xyz.x * uvec.xyz.x + center->xyz.y * uvec.xyz.y + center->xyz.z * uvec.xyz.z); - SDL_assert(!_isnan(gridp->planeD)); + SDL_assert(!isnan(gridp->planeD)); gridp->gmatrix.v.fvec = dfvec; gridp->gmatrix.v.rvec = drvec; diff --git a/src/mission/missioncampaign.cpp b/src/mission/missioncampaign.cpp index abe22ea..df4f030 100644 --- a/src/mission/missioncampaign.cpp +++ b/src/mission/missioncampaign.cpp @@ -251,9 +251,9 @@ int Granted_ships[MAX_SHIP_TYPES]; int Granted_weapons[MAX_WEAPON_TYPES]; // variables to control the UI stuff for loading campaigns -LOCAL UI_WINDOW Campaign_window; -LOCAL UI_LISTBOX Campaign_listbox; -LOCAL UI_BUTTON Campaign_okb, Campaign_cancelb; +static UI_WINDOW Campaign_window; +static UI_LISTBOX Campaign_listbox; +static UI_BUTTON Campaign_okb, Campaign_cancelb; // the campaign!!!!! campaign Campaign; @@ -428,7 +428,7 @@ void mission_campaign_build_list( int multiplayer ) if (SDL_strcasecmp(dir->d_name, BUILTIN_CAMPAIGN) == 0) continue; - char fn[MAX_PATH]; + char fn[MAX_PATH_LEN]; SDL_snprintf(fn, sizeof(fn), "%s/%s", wild_card, dir->d_name); struct stat buf; @@ -448,12 +448,12 @@ void mission_campaign_build_list( int multiplayer ) #else int find_handle; _finddata_t find; - char wild_card[256]; + char wild_card[MAX_PATH_LEN]; Num_campaigns = 0; mission_campaign_maybe_add( BUILTIN_CAMPAIGN, multiplayer); - memset(wild_card, 0, 256); + memset(wild_card, 0, sizeof(wild_card)); SDL_strlcpy(wild_card, NOX("data\\missions\\*"), sizeof(wild_card)); SDL_strlcat(wild_card, FS_CAMPAIGN_FILE_EXT, sizeof(wild_card)); find_handle = _findfirst( wild_card, &find ); @@ -779,14 +779,14 @@ void mission_campaign_init() // Fill in the root of the campaign save filename void mission_campaign_savefile_generate_root(char *filename, const int max_len) { - char base[_MAX_FNAME]; + char base[MAX_FILENAME_LEN]; SDL_assert ( strlen(Campaign.filename) != 0 ); // build up the filename for the save file. There could be a problem with filename length, // but this problem can get fixed in several ways -- ignore the problem for now though. - _splitpath( Campaign.filename, NULL, NULL, base, NULL ); - SDL_assert ( (strlen(base) + strlen(Player->callsign) + 1) < _MAX_FNAME ); + base_filename(Campaign.filename, base, sizeof(base)); + SDL_assert ( (int)(strlen(base) + strlen(Player->callsign)) < max_len ); SDL_snprintf( filename, max_len, NOX("%s.%s."), Player->callsign, base ); } @@ -797,11 +797,11 @@ void mission_campaign_savefile_generate_root(char *filename, const int max_len) int mission_campaign_savefile_save() { - char filename[_MAX_FNAME]; + char filename[MAX_PATH_LEN]; CFILE *fp; int i,j, mission_count; - memset(filename, 0, _MAX_FNAME); + memset(filename, 0, sizeof(filename)); mission_campaign_savefile_generate_root(filename, sizeof(filename)); // name the file differently depending on whether we're in single player or multiplayer mode @@ -867,7 +867,7 @@ int mission_campaign_savefile_save() // ugh! due to horrible bug, the stats saved at the end of every level were not written // out to disk. Write out a seperate file to do this. We will only read it in if we actually // find the file. - memset(filename, 0, _MAX_FNAME); + memset(filename, 0, sizeof(filename)); mission_campaign_savefile_generate_root(filename, sizeof(filename)); // name the file differently depending on whether we're in single player or multiplayer mode @@ -928,9 +928,9 @@ int campaign_savefile_save(const char *pname) // campaign filename void mission_campaign_savefile_delete( const char *cfilename, int is_multi ) { - char filename[_MAX_FNAME], base[_MAX_FNAME]; + char filename[MAX_PATH_LEN], base[MAX_FILENAME_LEN]; - _splitpath( cfilename, NULL, NULL, base, NULL ); + base_filename(cfilename, base, sizeof(base)); if ( Player->flags & PLAYER_FLAGS_IS_MULTI ) { return; // no such thing as a multiplayer campaign savefile @@ -986,7 +986,7 @@ void mission_campaign_delete_all_savefiles( const char *pilot_name, int is_multi // of the information stored in the campaign file. void mission_campaign_savefile_load( const char *cfilename ) { - char filename[_MAX_FNAME], base[_MAX_FNAME]; + char filename[MAX_PATH_LEN], base[MAX_FILENAME_LEN]; int version, i, num, j, num_stats_blocks; uint id, type_sig; CFILE *fp; @@ -998,8 +998,8 @@ void mission_campaign_savefile_load( const char *cfilename ) // build up the filename for the save file. There could be a problem with filename length, // but this problem can get fixed in several ways -- ignore the problem for now though. - _splitpath( cfilename, NULL, NULL, base, NULL ); - SDL_assert ( (strlen(base) + strlen(Player->callsign) + 1) < _MAX_FNAME ); + base_filename(cfilename, base, sizeof(base)); + SDL_assert ( (strlen(base) + strlen(Player->callsign)) < sizeof(filename) ); if(Game_mode & GM_MULTIPLAYER) SDL_snprintf( filename, sizeof(filename), NOX("%s.%s.msg"), Player->callsign, base ); @@ -1038,7 +1038,7 @@ void mission_campaign_savefile_load( const char *cfilename ) // read in the filename of the campaign and compare the filenames to be sure that // we are reading data that really belongs to this campaign. I think that this check // is redundant. - cfread_string_len( filename, _MAX_FNAME, fp ); + cfread_string_len( filename, sizeof(filename), fp ); /*if ( SDL_strcasecmp( filename, cfilename) ) { // Used to be !SDL_strcasecmp. How did this ever work? --MK, 11/9/97 Warning(LOCATION, "Campaign save file appears corrupt because of mismatching filenames."); cfclose(fp); @@ -1742,7 +1742,7 @@ void read_mission_goal_list(int num) int mission_campaign_find_mission( const char *name ) { int i; - char realname[_MAX_PATH]; + char realname[MAX_FILENAME_LEN]; // look for an extension on the file. If no extension, add default ".fsm" onto the // end of the filename diff --git a/src/mission/missiongrid.cpp b/src/mission/missiongrid.cpp index 3f04a58..1fa4444 100644 --- a/src/mission/missiongrid.cpp +++ b/src/mission/missiongrid.cpp @@ -219,7 +219,7 @@ grid *create_grid(grid *gridp, vector *forward, vector *right, vector *center, i gridp->gmatrix.v.uvec = uvec; gridp->planeD = -(center->xyz.x * uvec.xyz.x + center->xyz.y * uvec.xyz.y + center->xyz.z * uvec.xyz.z); - SDL_assert(!_isnan(gridp->planeD)); + SDL_assert(!isnan(gridp->planeD)); gridp->gmatrix.v.fvec = dfvec; gridp->gmatrix.v.rvec = drvec; diff --git a/src/mission/missionmessage.cpp b/src/mission/missionmessage.cpp index e82af40..440c443 100644 --- a/src/mission/missionmessage.cpp +++ b/src/mission/missionmessage.cpp @@ -495,7 +495,7 @@ typedef struct pmessage { int builtin_type; // if a builtin message, type of the message } pmessage; -LOCAL pmessage Playing_messages[MAX_PLAYING_MESSAGES]; +static pmessage Playing_messages[MAX_PLAYING_MESSAGES]; int Message_shipnum; // ship number of who is sending message to player -- used outside this module diff --git a/src/mission/missionparse.cpp b/src/mission/missionparse.cpp index a291565..893c18f 100644 --- a/src/mission/missionparse.cpp +++ b/src/mission/missionparse.cpp @@ -385,7 +385,7 @@ #include "neblightning.h" #include "fvi.h" -LOCAL struct { +static struct { p_object *docker; char dockee[NAME_LENGTH]; char docker_point[NAME_LENGTH]; diff --git a/src/model/modelread.cpp b/src/model/modelread.cpp index 466c189..0ddbbbb 100644 --- a/src/model/modelread.cpp +++ b/src/model/modelread.cpp @@ -736,10 +736,10 @@ static int model_initted = 0; #ifndef NDEBUG CFILE *ss_fp; // file pointer used to dump subsystem information -char model_filename[_MAX_PATH]; // temp used to store filename -char debug_name[_MAX_PATH]; +char model_filename[MAX_PATH_LEN]; // temp used to store filename +char debug_name[MAX_PATH_LEN]; int ss_warning_shown; // have we shown the warning dialog concerning the subsystems? -char Global_filename[256]; +char Global_filename[MAX_PATH_LEN]; int Model_ram = 0; // How much RAM the models use total #endif @@ -1142,9 +1142,9 @@ void do_new_subsystem( int n_subsystems, model_subsystem *slist, int subobj_num, } #ifndef NDEBUG if ( !ss_warning_shown) { - char bname[_MAX_FNAME]; + char bname[MAX_FILENAME_LEN]; - _splitpath(model_filename, NULL, NULL, bname, NULL); + base_filename(model_filename, bname, sizeof(bname)); Warning(LOCATION, "A subsystem was found in model %s that does not have a record in ships.tbl.\nA list of subsystems for this ship will be dumped to:\n\ndata\\tables\\%s.subsystems for inclusion\n into ships.tbl.", model_filename, bname); ss_warning_shown = 1; @@ -1261,15 +1261,15 @@ int read_model_file(polymodel * pm, const char *filename, int n_subsystems, mode // into the game quicker #if 0 { - char bname[_MAX_FNAME]; + char bname[MAX_PATH_LEN]; - _splitpath(filename, NULL, NULL, bname, NULL); - sprintf(debug_name, sizeof(), "%s.subsystems", bname); + base_filename(filename, bname, sizeof(bname)); + SDL_snprintf(debug_name, sizeof(debug_name), "%s.subsystems", bname); ss_fp = cfopen(debug_name, "wb", CFILE_NORMAL, CF_TYPE_TABLES ); if ( !ss_fp ) { mprintf(( "Can't open debug file for writing subsystems for %s\n", filename)); } else { - strcpy(model_filename, filename); + SDL_strlcpy(model_filename, filename, sizeof(model_filename)); ss_warning_shown = 0; } } @@ -2038,7 +2038,7 @@ int read_model_file(polymodel * pm, const char *filename, int n_subsystems, mode size = cfilelength(ss_fp); cfclose(ss_fp); if ( size <= 0 ) { - _unlink(debug_name); + cf_delete(debug_name, CF_TYPE_TABLES); } } } diff --git a/src/nebedit/nebedit.cpp b/src/nebedit/nebedit.cpp index 20b25f4..173c458 100644 --- a/src/nebedit/nebedit.cpp +++ b/src/nebedit/nebedit.cpp @@ -330,7 +330,7 @@ int load_nebula_sub(const char *filename) void nebedit_close() { - char a_path[MAX_PATH]; + char a_path[MAX_PATH_LEN]; cf_create_default_path_string(a_path, CF_TYPE_CACHE, "autosaved.neb"); diff --git a/src/network/multi.cpp b/src/network/multi.cpp index d0d62c0..edce8c7 100644 --- a/src/network/multi.cpp +++ b/src/network/multi.cpp @@ -337,15 +337,15 @@ time_t Next_bytes_time = -1; // bytes sent int Multi_client_update_times[MAX_PLAYERS]; // client update packet timestamp // local network buffer data -LOCAL ubyte net_buffer[NUM_REENTRANT_LEVELS][MAX_NET_BUFFER]; -LOCAL ubyte Multi_read_count; +static ubyte net_buffer[NUM_REENTRANT_LEVELS][MAX_NET_BUFFER]; +static ubyte Multi_read_count; int Multi_restr_query_timestamp = -1; join_request Multi_restr_join_request; net_addr_t Multi_restr_addr; int Multi_join_restr_mode = -1; -LOCAL fix Multi_server_wait_start; // variable to hold start time when waiting to reestablish with server +static fix Multi_server_wait_start; // variable to hold start time when waiting to reestablish with server // non API master tracker vars char Multi_tracker_login[100] = ""; diff --git a/src/network/multi_ingame.cpp b/src/network/multi_ingame.cpp index 6d772ce..06b6323 100644 --- a/src/network/multi_ingame.cpp +++ b/src/network/multi_ingame.cpp @@ -394,8 +394,8 @@ extern void add_vector_data(ubyte *data, int *size, vector vec); // -------------------------------------------------------------------------------------------------- -LOCAL int Ingame_ships_deleted = 0; -//LOCAL int Ingame_ships_to_delete[MAX_SHIPS]; // no longer used +static int Ingame_ships_deleted = 0; +//static int Ingame_ships_to_delete[MAX_SHIPS]; // no longer used // -------------------------------------------------------------------------------------------------- @@ -788,7 +788,7 @@ static int Multi_ingame_timer_coords[GR_NUM_RESOLUTIONS][2] = { //#define MULTI_INGAME_TIME_LEFT_Y 411 #define MULTI_INGAME_TIME_SECONDS (1000 * 15) -LOCAL int Ingame_time_left; +static int Ingame_time_left; // uses MULTI_JOIN_REFRESH_TIME as its timestamp UI_WINDOW Multi_ingame_window; // the window object for the join screen diff --git a/src/network/multilag.cpp b/src/network/multilag.cpp index f983d37..f26215d 100644 --- a/src/network/multilag.cpp +++ b/src/network/multilag.cpp @@ -156,7 +156,7 @@ typedef struct lag_buf { int data_len; // length of the data uint socket; // this can be either a PSNET_SOCKET or a PSNET_SOCKET_RELIABLE int stamp; // when this expires, make this packet available - SOCKADDR_IN ip_addr; // ip address when in TCP + struct sockaddr_in ip_addr; // ip address when in TCP #ifndef PLAT_UNIX SOCKADDR_IPX ipx_addr; // ipx address when in IPX mode #endif @@ -273,7 +273,7 @@ int multi_lag_select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *except #else char t_buf[1024]; int t_from_len; - SOCKADDR_IN ip_addr; + struct sockaddr_in ip_addr; #ifndef PLAT_UNIX SOCKADDR_IPX ipx_addr; #endif @@ -285,7 +285,7 @@ int multi_lag_select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *except SDL_assert(except_fds == NULL); // clear out addresses - memset(&ip_addr, 0, sizeof(SOCKADDR_IN)); + memset(&ip_addr, 0, sizeof(struct sockaddr_in)); #ifndef PLAT_UNIX memset(&ipx_addr, 0, sizeof(SOCKADDR_IPX)); #endif @@ -294,12 +294,12 @@ int multi_lag_select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *except if(select(nfds, readfds, writefds, except_fds, timeout)){ // read the data and stuff it if(Tcp_active){ - t_from_len = sizeof(SOCKADDR_IN); - ret_val = recvfrom(readfds->fd_array[0], t_buf, 1024, 0, (SOCKADDR*)&ip_addr, &t_from_len); + t_from_len = sizeof(struct sockaddr_in); + ret_val = recvfrom(readfds->fd_array[0], t_buf, 1024, 0, (struct sockaddr*)&ip_addr, &t_from_len); #ifndef PLAT_UNIX } else { t_from_len = sizeof(SOCKADDR_IPX); - ret_val = recvfrom(readfds->fd_array[0], t_buf, 1024, 0, (SOCKADDR*)&ipx_addr, &t_from_len); + ret_val = recvfrom(readfds->fd_array[0], t_buf, 1024, 0, (struct sockaddr*)&ipx_addr, &t_from_len); #endif } @@ -372,7 +372,7 @@ int multi_lag_recvfrom(uint s, char *buf, int len, int flags, struct sockaddr *f SDL_assert(item->data_len <= len); memcpy(buf, item->data, item->data_len); if(Tcp_active){ - memcpy(from, &item->ip_addr, sizeof(SOCKADDR_IN)); + memcpy(from, &item->ip_addr, sizeof(struct sockaddr_in)); #ifndef PLAT_UNIX } else { memcpy(from, &item->ipx_addr, sizeof(SOCKADDR_IPX)); diff --git a/src/network/psnet.cpp b/src/network/psnet.cpp index 4aaae72..7e69a22 100644 --- a/src/network/psnet.cpp +++ b/src/network/psnet.cpp @@ -235,10 +235,10 @@ typedef struct network_packet_buffer #define MAX_PACKET_BUFFERS 96 #ifdef PSNET_BUFFER_OLD_SCHOOL - LOCAL network_packet_buffer packet_buffers[MAX_PACKET_BUFFERS]; // buffer to hold packets sent to us - LOCAL short packet_free_list[MAX_PACKET_BUFFERS]; // contains id's of free packet buffers - LOCAL Num_packet_buffers; - LOCAL int Largest_packet_index = 0; + static network_packet_buffer packet_buffers[MAX_PACKET_BUFFERS]; // buffer to hold packets sent to us + static short packet_free_list[MAX_PACKET_BUFFERS]; // contains id's of free packet buffers + static Num_packet_buffers; + static int Largest_packet_index = 0; int Next_packet_id; int Last_packet_id; @@ -531,8 +531,8 @@ uint sock_get_ip() { char LclHost[MAXHOSTNAME]; LPHOSTENT Hostent; - SOCKADDR_IN LclAddr; - SOCKADDR_IN RmtAddr; + struct sockaddr_in LclAddr; + struct sockaddr_in RmtAddr; SOCKET hSock; int nRet; @@ -559,15 +559,15 @@ uint sock_get_ip() int psnet_get_ip( SOCKET s ) { int rval, len; - SOCKADDR_IN local_addr; + struct sockaddr_in local_addr; if ( Psnet_my_addr_valid ){ return 1; } - memset(&local_addr, 0, sizeof(SOCKADDR_IN)); - len = sizeof(SOCKADDR_IN); - rval = getsockname(s, (SOCKADDR *)&local_addr, &len ); + memset(&local_addr, 0, sizeof(struct sockaddr_in)); + len = sizeof(struct sockaddr_in); + rval = getsockname(s, (struct sockaddr *)&local_addr, &len ); if ( rval == SOCKET_ERROR ) return 0; @@ -650,7 +650,7 @@ int psnet_init_stream( SOCKET *s, int type ) int psnet_init_reliable(ushort port, int should_listen, int type) { SOCKET sock = 0; // JAS: Get rid of optimized warning - SOCKADDR_IN sockaddr; // UDP/TCP socket structure + struct sockaddr_in sockaddr; // UDP/TCP socket structure SOCKADDR_IPX ipx_addr; // IPX socket structure // set up the reliable TCP transport socket @@ -665,18 +665,18 @@ int psnet_init_reliable(ushort port, int should_listen, int type) memset(&ipx_addr, 0, sizeof(SOCKADDR_IPX)); ipx_addr.sa_socket = htons( port ); ipx_addr.sa_family = AF_IPX; - if (bind(sock, (SOCKADDR *)&ipx_addr, sizeof(SOCKADDR_IPX)) == SOCKET_ERROR) { + if (bind(sock, (struct sockaddr *)&ipx_addr, sizeof(SOCKADDR_IPX)) == SOCKET_ERROR) { nprintf(("Network", "Unable to bind reliable socket on port %d (%d)!\n" , port, WSAGetLastError() )); return INVALID_SOCKET; } break; case NET_TCP: - memset( &sockaddr, 0, sizeof(SOCKADDR_IN) ); + memset( &sockaddr, 0, sizeof(struct sockaddr_in) ); sockaddr.sin_family = AF_INET; sockaddr.sin_addr.s_addr = INADDR_ANY; //fill in with our IP sockaddr.sin_port = htons( port ); - if ( bind(sock, (SOCKADDR*)&sockaddr, sizeof (sockaddr)) == SOCKET_ERROR) { + if ( bind(sock, (struct sockaddr*)&sockaddr, sizeof (sockaddr)) == SOCKET_ERROR) { nprintf(("Network", "Unable to bind reliable socket on port %d (%d)!\n" , port, WSAGetLastError() )); return INVALID_SOCKET; } @@ -778,7 +778,7 @@ void psnet_init( int protocol, int port_num ) WSADATA wsa_data; // UDP/TCP socket structure - SOCKADDR_IN sockaddr; + struct sockaddr_in sockaddr; // IPX socket structure //SOCKADDR_IPX ipx_addr; @@ -832,13 +832,13 @@ void psnet_init( int protocol, int port_num ) } // bind the socket - memset(&sockaddr,0,sizeof(SOCKADDR_IN)); + memset(&sockaddr,0,sizeof(struct sockaddr_in)); sockaddr.sin_family = AF_INET; sockaddr.sin_addr.s_addr = INADDR_ANY; //fill in with our IP sockaddr.sin_port = htons( Psnet_default_port ); - if ( bind(TCP_socket, (SOCKADDR*)&sockaddr, sizeof (sockaddr)) == SOCKET_ERROR) { + if ( bind(TCP_socket, (struct sockaddr*)&sockaddr, sizeof (sockaddr)) == SOCKET_ERROR) { Tcp_failure_code = WSAGetLastError(); nprintf(( "Network", "Couldn't bind TCP socket (%d)! Invalidating TCP\n", Tcp_failure_code )); return; @@ -870,7 +870,7 @@ void psnet_init( int protocol, int port_num ) TCP_reliable_socket = socket( AF_INET, SOCK_DGRAM, 0 ); if ( TCP_reliable_socket != INVALID_SOCKET ) { // bind the socket - memset(&sockaddr,0,sizeof(SOCKADDR_IN)); + memset(&sockaddr,0,sizeof(struct sockaddr_in)); sockaddr.sin_family = AF_INET; sockaddr.sin_addr.s_addr = INADDR_ANY; //fill in with our IP @@ -878,7 +878,7 @@ void psnet_init( int protocol, int port_num ) //memcpy(&sockaddr.sin_addr.s_addr,&my_ip,sizeof(uint)); sockaddr.sin_port = htons( (ushort)(port+1) ); - if ( bind(TCP_reliable_socket, (SOCKADDR*)&sockaddr, sizeof (sockaddr)) == SOCKET_ERROR) { + if ( bind(TCP_reliable_socket, (struct sockaddr*)&sockaddr, sizeof (sockaddr)) == SOCKET_ERROR) { nprintf(( "Network", "Couldn't bind TCP socket (%d)! Invalidating TCP\n", WSAGetLastError() )); goto tcp_done; } @@ -1094,7 +1094,7 @@ int psnet_use_protocol( int protocol ) // get the socket name for the IPX_socket, and put it into My_addr len = sizeof(SOCKADDR_IPX); - if ( getsockname(IPX_socket, (SOCKADDR *)&ipx_addr, &len) == SOCKET_ERROR ) { + if ( getsockname(IPX_socket, (struct sockaddr *)&ipx_addr, &len) == SOCKET_ERROR ) { nprintf(("Network", "Unable to get sock name for IPX unreliable socket (%d)\n", WSAGetLastError() )); return 0; } @@ -1140,9 +1140,9 @@ int psnet_use_protocol( int protocol ) // Reliable_socket socket created in psnet_init void psnet_rel_connect_to_server( PSNET_SOCKET *psocket, net_addr *server_addr) { - SOCKADDR_IN sockaddr; // UDP/TCP socket structure + struct sockaddr_in sockaddr; // UDP/TCP socket structure SOCKADDR_IPX ipx_addr; // IPX socket structure - SOCKADDR *addr; // pointer to SOCKADDR to make coding easier + struct sockaddr *addr; // pointer to struct sockaddr to make coding easier SOCKET *socket; ubyte iaddr[6]; u_short port; @@ -1160,7 +1160,7 @@ void psnet_rel_connect_to_server( PSNET_SOCKET *psocket, net_addr *server_addr) memcpy(ipx_addr.sa_nodenum, iaddr, 6); memcpy(ipx_addr.sa_netnum, server_addr->net_id, 4); ipx_addr.sa_socket = htons(port); - addr = (SOCKADDR *)&ipx_addr; + addr = (struct sockaddr *)&ipx_addr; name_length = sizeof(ipx_addr); break; @@ -1168,7 +1168,7 @@ void psnet_rel_connect_to_server( PSNET_SOCKET *psocket, net_addr *server_addr) sockaddr.sin_family = AF_INET; memcpy(&sockaddr.sin_addr.s_addr, iaddr, 4); sockaddr.sin_port = htons(port); - addr = (SOCKADDR *)&sockaddr; + addr = (struct sockaddr *)&sockaddr; name_length = sizeof(sockaddr); break; @@ -1376,7 +1376,7 @@ void psnet_string_to_addr( net_addr * address, char * text, const int max_textle // to package up and use void psnet_get_socket_data(SOCKET socket, int flags = PSNET_FLAG_RAW) { - SOCKADDR_IN ip_addr; // UDP/TCP socket structure + struct sockaddr_in ip_addr; // UDP/TCP socket structure SOCKADDR_IPX ipx_addr; // IPX socket structure fd_set rfds; timeval timeout; @@ -1386,7 +1386,7 @@ void psnet_get_socket_data(SOCKET socket, int flags = PSNET_FLAG_RAW) network_checksum_packet packet_data; // clear the addresses to remove compiler warnings - memset(&ip_addr, 0, sizeof(SOCKADDR_IN)); + memset(&ip_addr, 0, sizeof(struct sockaddr_in)); memset(&ipx_addr, 0, sizeof(SOCKADDR_IPX)); if ( Network_status != NETWORK_STATUS_RUNNING ) { @@ -1432,18 +1432,18 @@ void psnet_get_socket_data(SOCKET socket, int flags = PSNET_FLAG_RAW) case NET_IPX: from_len = sizeof(SOCKADDR_IPX); if(flags & PSNET_FLAG_RAW){ - read_len = recvfrom( socket, (char*)packet_read.data, MAX_PACKET_SIZE, 0, (SOCKADDR*)&ipx_addr, &from_len ); + read_len = recvfrom( socket, (char*)packet_read.data, MAX_PACKET_SIZE, 0, (struct sockaddr*)&ipx_addr, &from_len ); } else { - read_len = recvfrom( socket, (char *)&packet_read, sizeof(packet_data), 0, (SOCKADDR*)&ipx_addr, &from_len ); + read_len = recvfrom( socket, (char *)&packet_read, sizeof(packet_data), 0, (struct sockaddr*)&ipx_addr, &from_len ); } break; case NET_TCP: - from_len = sizeof(SOCKADDR_IN); + from_len = sizeof(struct sockaddr_in); if(flags & PSNET_FLAG_RAW){ - read_len = recvfrom( socket, (char*)packet_read.data, MAX_PACKET_SIZE, 0, (SOCKADDR*)&ip_addr, &from_len ); + read_len = recvfrom( socket, (char*)packet_read.data, MAX_PACKET_SIZE, 0, (struct sockaddr*)&ip_addr, &from_len ); } else { - read_len = recvfrom( socket, (char *)&packet_read, sizeof(packet_data), 0, (SOCKADDR*)&ip_addr, &from_len ); + read_len = recvfrom( socket, (char *)&packet_read, sizeof(packet_data), 0, (struct sockaddr*)&ip_addr, &from_len ); } break; @@ -1595,7 +1595,7 @@ int psnet_send( net_addr * who_to, void * data, int len, int flags, int reliable { SOCKET send_sock; - SOCKADDR_IN sockaddr; // UDP/TCP socket structure + struct sockaddr_in sockaddr; // UDP/TCP socket structure SOCKADDR_IPX ipx_addr; // IPX socket structure int ret, send_len; ubyte iaddr[6], *send_data; @@ -1704,7 +1704,7 @@ int psnet_send( net_addr * who_to, void * data, int len, int flags, int reliable memcpy(ipx_addr.sa_nodenum, iaddr, 6); memcpy(ipx_addr.sa_netnum, who_to->net_id, 4); - ret = sendto(send_sock, (char *)send_data, send_len, 0, (SOCKADDR*)&ipx_addr, sizeof(ipx_addr)); + ret = sendto(send_sock, (char *)send_data, send_len, 0, (struct sockaddr*)&ipx_addr, sizeof(ipx_addr)); if ( (ret != SOCKET_ERROR) && (ret != send_len) ) nprintf(("Network", "requested to send %d bytes -- sent %d instead!!!\n", send_len, ret)); break; @@ -1716,7 +1716,7 @@ int psnet_send( net_addr * who_to, void * data, int len, int flags, int reliable memcpy(&sockaddr.sin_addr.s_addr, iaddr, 4); sockaddr.sin_port = htons(port); - ret = sendto( send_sock, (char *)send_data, send_len, 0, (SOCKADDR*)&sockaddr, sizeof(sockaddr) ); + ret = sendto( send_sock, (char *)send_data, send_len, 0, (struct sockaddr*)&sockaddr, sizeof(sockaddr) ); break; default: @@ -1969,7 +1969,7 @@ int psnet_rel_check_for_listen(net_addr *from_addr) fd_set rfds; timeval timeout; SOCKET sock; // when trying to accept, this is new socket - SOCKADDR_IN ip_addr; // UDP/TCP socket structure + struct sockaddr_in ip_addr; // UDP/TCP socket structure SOCKADDR_IPX ipx_addr; // IPX socket structure int from_len, error; unsigned long arg; @@ -1996,7 +1996,7 @@ int psnet_rel_check_for_listen(net_addr *from_addr) switch ( Socket_type ) { case NET_IPX: from_len = sizeof(SOCKADDR_IPX); - sock = accept( Listen_socket, (SOCKADDR*)&ipx_addr, &from_len ); + sock = accept( Listen_socket, (struct sockaddr*)&ipx_addr, &from_len ); from_addr->port = ntohs( ipx_addr.sa_socket ); memcpy(from_addr->addr, ipx_addr.sa_nodenum, 6 ); memcpy(from_addr->net_id, ipx_addr.sa_netnum, 4 ); @@ -2004,8 +2004,8 @@ int psnet_rel_check_for_listen(net_addr *from_addr) break; case NET_TCP: - from_len = sizeof(SOCKADDR_IN); - sock = accept( Listen_socket, (SOCKADDR*)&ip_addr, &from_len ); + from_len = sizeof(struct sockaddr_in); + sock = accept( Listen_socket, (struct sockaddr*)&ip_addr, &from_len ); from_addr->port = ntohs( ip_addr.sin_port ); memset(from_addr->addr, 0x00, 6); memcpy(from_addr->addr, &ip_addr.sin_addr.S_un.S_addr, 4); @@ -2045,7 +2045,7 @@ int psnet_get( void * data, net_addr* from_addr, int flags ) fd_set rfds; timeval timeout; int read_len,from_len; - SOCKADDR_IN ip_addr; + struct sockaddr_in ip_addr; FD_ZERO(&rfds); FD_SET( Unreliable_socket, &rfds ); timeout.tv_sec = 0; @@ -2066,8 +2066,8 @@ int psnet_get( void * data, net_addr* from_addr, int flags ) // get data off the socket and process read_len = SOCKET_ERROR; - from_len = sizeof(SOCKADDR_IN); - read_len = recvfrom( Unreliable_socket, (char*)data, MAX_PACKET_SIZE, 0, (SOCKADDR*)&ip_addr, &from_len ); + from_len = sizeof(struct sockaddr_in); + read_len = recvfrom( Unreliable_socket, (char*)data, MAX_PACKET_SIZE, 0, (struct sockaddr*)&ip_addr, &from_len ); from_addr->port = ntohs( ip_addr.sin_port ); memset(from_addr->addr, 0x00, 6); memcpy(from_addr->addr, &ip_addr.sin_addr.S_un.S_addr, 4); @@ -2319,10 +2319,10 @@ int psnet_is_valid_ip_string( char *ip_string, int allow_port ) #ifndef PSNET_BUFFER_OLD_SCHOOL // a sequence number of -1 will indicate that this packet is not valid -LOCAL network_packet_buffer Psnet_buffers[MAX_PACKET_BUFFERS]; -LOCAL int Psnet_seq_number = 0; -LOCAL int Psnet_lowest_id = 0; -LOCAL int Psnet_highest_id = 0; +static network_packet_buffer Psnet_buffers[MAX_PACKET_BUFFERS]; +static int Psnet_seq_number = 0; +static int Psnet_lowest_id = 0; +static int Psnet_highest_id = 0; // initialize the buffering system void psnet_buffer_init() diff --git a/src/network/psnet2.cpp b/src/network/psnet2.cpp index d46d359..6ba7601 100644 --- a/src/network/psnet2.cpp +++ b/src/network/psnet2.cpp @@ -180,7 +180,7 @@ // PSNET 2 DEFINES/VARS // -BOOL Psnet_my_addr_valid; +int Psnet_my_addr_valid; net_addr_t Psnet_my_addr; ubyte Null_address[6]; @@ -327,7 +327,7 @@ typedef struct { unsigned short rsequence[MAXNETBUFFERS]; // This is the sequence number of the given packet float last_packet_received; // For a given connection, this is the last packet we received float last_packet_sent; - SOCKADDR addr; // SOCKADDR of our peer + struct sockaddr addr; // struct sockaddr of our peer ushort status; // Status of this connection unsigned short oursequence; // This is the next sequence number the application is expecting unsigned short theirsequence; // This is the next sequence number the peer is expecting @@ -453,14 +453,14 @@ int RECVFROM(SOCKET s, char *buf, int len, int flags, sockaddr *from, int *froml break; case NET_TCP: - ((SOCKADDR_IN*)from)->sin_port = htons(addr.port); + ((struct sockaddr_in*)from)->sin_port = htons(addr.port); #ifdef PLAT_UNIX - memcpy(&((SOCKADDR_IN*)from)->sin_addr.s_addr, addr.addr, 4); + memcpy(&((struct sockaddr_in*)from)->sin_addr.s_addr, addr.addr, 4); #else - memcpy(&((SOCKADDR_IN*)from)->sin_addr.S_un.S_addr, addr.addr, 4); + memcpy(&((struct sockaddr_in*)from)->sin_addr.S_un.S_addr, addr.addr, 4); #endif - ((SOCKADDR_IN*)from)->sin_family = AF_INET; - *fromlen = sizeof(SOCKADDR_IN); + ((struct sockaddr_in*)from)->sin_family = AF_INET; + *fromlen = sizeof(struct sockaddr_in); break; default: @@ -513,14 +513,14 @@ int SENDTO(SOCKET s, char * buf, int len, int flags, sockaddr *to, int tolen, in // is the socket writeable? // send it - return sendto(s, outbuf, len + 1, flags, (SOCKADDR*)to, tolen); + return sendto(s, outbuf, len + 1, flags, (struct sockaddr*)to, tolen); } // call this once per frame to read everything off of our socket void PSNET_TOP_LAYER_PROCESS() { // read socket stuff - SOCKADDR_IN ip_addr; // UDP/TCP socket structure + struct sockaddr_in ip_addr; // UDP/TCP socket structure #ifndef PLAT_UNIX SOCKADDR_IPX ipx_addr; // IPX socket structure #endif @@ -536,7 +536,7 @@ void PSNET_TOP_LAYER_PROCESS() network_naked_packet packet_read; // clear the addresses to remove compiler warnings - memset(&ip_addr, 0, sizeof(SOCKADDR_IN)); + memset(&ip_addr, 0, sizeof(struct sockaddr_in)); #ifndef PLAT_UNIX memset(&ipx_addr, 0, sizeof(SOCKADDR_IPX)); #endif @@ -575,13 +575,13 @@ void PSNET_TOP_LAYER_PROCESS() case NET_IPX: #ifndef PLAT_UNIX from_len = sizeof(SOCKADDR_IPX); - read_len = recvfrom( Unreliable_socket, (char*)packet_read.data, MAX_TOP_LAYER_PACKET_SIZE, 0, (SOCKADDR*)&ipx_addr, &from_len); + read_len = recvfrom( Unreliable_socket, (char*)packet_read.data, MAX_TOP_LAYER_PACKET_SIZE, 0, (struct sockaddr*)&ipx_addr, &from_len); #endif break; case NET_TCP: - from_len = sizeof(SOCKADDR_IN); - read_len = recvfrom( Unreliable_socket, (char*)packet_read.data, MAX_TOP_LAYER_PACKET_SIZE, 0, (SOCKADDR*)&ip_addr, &from_len); + from_len = sizeof(struct sockaddr_in); + read_len = recvfrom( Unreliable_socket, (char*)packet_read.data, MAX_TOP_LAYER_PACKET_SIZE, 0, (struct sockaddr*)&ip_addr, &from_len); break; default: @@ -802,7 +802,7 @@ int psnet_use_protocol( int protocol ) #else socklen_t len; #endif - SOCKADDR_IN ip_addr; + struct sockaddr_in ip_addr; // zero out my address Psnet_my_addr_valid = 0; @@ -828,7 +828,7 @@ int psnet_use_protocol( int protocol ) // get the socket name for the IPX_socket, and put it into My_addr len = sizeof(SOCKADDR_IPX); - if ( getsockname(IPX_socket, (SOCKADDR *)&ipx_addr, &len) == SOCKET_ERROR ) { + if ( getsockname(IPX_socket, (struct sockaddr *)&ipx_addr, &len) == SOCKET_ERROR ) { ml_printf("Unable to get sock name for IPX unreliable socket (%d)\n", WSAGetLastError() ); return 0; } @@ -856,8 +856,8 @@ int psnet_use_protocol( int protocol ) } // get the socket name for the IPX_socket, and put it into My_addr - len = sizeof(SOCKADDR_IN); - if ( getsockname(TCP_socket, (SOCKADDR *)&ip_addr, &len) == SOCKET_ERROR ) { + len = sizeof(struct sockaddr_in); + if ( getsockname(TCP_socket, (struct sockaddr *)&ip_addr, &len) == SOCKET_ERROR ) { ml_printf("Unable to get sock name for TCP unreliable socket (%d)\n", WSAGetLastError() ); return 0; @@ -1019,7 +1019,7 @@ int psnet_send( net_addr_t * who_to, void * data, int len, int np_index ) { // send data unreliably SOCKET send_sock; - SOCKADDR_IN sockaddr; // UDP/TCP socket structure + struct sockaddr_in sockaddr; // UDP/TCP socket structure #ifndef PLAT_UNIX SOCKADDR_IPX ipx_addr; // IPX socket structure #endif @@ -1088,7 +1088,7 @@ int psnet_send( net_addr_t * who_to, void * data, int len, int np_index ) memcpy(ipx_addr.sa_nodenum, iaddr, 6); memcpy(ipx_addr.sa_netnum, who_to->net_id, 4); - ret = SENDTO(send_sock, (char *)send_data, send_len, 0, (SOCKADDR*)&ipx_addr, sizeof(ipx_addr), PSNET_TYPE_UNRELIABLE); + ret = SENDTO(send_sock, (char *)send_data, send_len, 0, (struct sockaddr*)&ipx_addr, sizeof(ipx_addr), PSNET_TYPE_UNRELIABLE); multi_rate_add(np_index, "ipx", send_len); if ( (ret != SOCKET_ERROR) && (ret != send_len) ){ @@ -1104,7 +1104,7 @@ int psnet_send( net_addr_t * who_to, void * data, int len, int np_index ) multi_rate_add(np_index, "udp(h)", send_len + UDP_HEADER_SIZE); multi_rate_add(np_index, "udp", send_len); - ret = SENDTO( send_sock, (char *)send_data, send_len, 0, (SOCKADDR*)&sockaddr, sizeof(sockaddr), PSNET_TYPE_UNRELIABLE ); + ret = SENDTO( send_sock, (char *)send_data, send_len, 0, (struct sockaddr*)&sockaddr, sizeof(sockaddr), PSNET_TYPE_UNRELIABLE ); break; default: @@ -1223,7 +1223,7 @@ int psnet_rel_ping_compare( const void *arg1, const void *arg2 ) return 0; } -void psnet_rel_send_ack(SOCKADDR *raddr, unsigned int sig, ubyte link_type, float time_sent) +void psnet_rel_send_ack(struct sockaddr *raddr, unsigned int sig, ubyte link_type, float time_sent) { int sig_tmp; reliable_header ack_header; @@ -1238,14 +1238,14 @@ void psnet_rel_send_ack(SOCKADDR *raddr, unsigned int sig, ubyte link_type, floa ml_string("No IPX in rel_send_ack()"); return; } - SENDTO(Unreliable_socket, (char *)&ack_header, RELIABLE_PACKET_HEADER_ONLY_SIZE+sizeof(unsigned int), 0, raddr, sizeof(SOCKADDR), PSNET_TYPE_RELIABLE); + SENDTO(Unreliable_socket, (char *)&ack_header, RELIABLE_PACKET_HEADER_ONLY_SIZE+sizeof(unsigned int), 0, raddr, sizeof(struct sockaddr), PSNET_TYPE_RELIABLE); break; case NET_TCP: if(!Tcp_active){ ml_string("No TCP in rel_send_ack()"); return; } - SENDTO(Unreliable_socket, (char *)&ack_header, RELIABLE_PACKET_HEADER_ONLY_SIZE+sizeof(unsigned int), 0, raddr, sizeof(SOCKADDR), PSNET_TYPE_RELIABLE); + SENDTO(Unreliable_socket, (char *)&ack_header, RELIABLE_PACKET_HEADER_ONLY_SIZE+sizeof(unsigned int), 0, raddr, sizeof(struct sockaddr), PSNET_TYPE_RELIABLE); break; default: ml_string("Unknown protocol type in nw_SendReliable()"); @@ -1299,13 +1299,13 @@ void psnet_rel_close_socket( PSNET_SOCKET_RELIABLE *sockp ) if(!Ipx_active){ return; } - SENDTO(Unreliable_socket, (char *)&diss_conn_header,RELIABLE_PACKET_HEADER_ONLY_SIZE,0,&Reliable_sockets[*sockp].addr,sizeof(SOCKADDR), PSNET_TYPE_RELIABLE); + SENDTO(Unreliable_socket, (char *)&diss_conn_header,RELIABLE_PACKET_HEADER_ONLY_SIZE,0,&Reliable_sockets[*sockp].addr,sizeof(struct sockaddr), PSNET_TYPE_RELIABLE); break; case NET_TCP: if(!Tcp_active){ return; } - SENDTO(Unreliable_socket, (char *)&diss_conn_header,RELIABLE_PACKET_HEADER_ONLY_SIZE,0,&Reliable_sockets[*sockp].addr,sizeof(SOCKADDR), PSNET_TYPE_RELIABLE); + SENDTO(Unreliable_socket, (char *)&diss_conn_header,RELIABLE_PACKET_HEADER_ONLY_SIZE,0,&Reliable_sockets[*sockp].addr,sizeof(struct sockaddr), PSNET_TYPE_RELIABLE); break; default: ml_printf("Unknown protocol type in nw_CloseSocket()!\n"); @@ -1365,7 +1365,7 @@ int psnet_rel_send(PSNET_SOCKET_RELIABLE socketid, ubyte *data, int length, int send_header.type = RNT_DATA; send_header.send_time = psnet_get_time(); send_header.send_time = INTEL_FLOAT( send_header.send_time ); - // SOCKADDR_IN * rsockaddr = (SOCKADDR_IN *)&rsocket->addr; + // struct sockaddr_in * rsockaddr = (struct sockaddr_in *)&rsocket->addr; if (send_this_packet){ switch ( rsocket->connection_type ){ @@ -1373,14 +1373,14 @@ int psnet_rel_send(PSNET_SOCKET_RELIABLE socketid, ubyte *data, int length, int if(!Ipx_active){ return 0; } - bytesout = SENDTO(Unreliable_socket, (char *)&send_header,RELIABLE_PACKET_HEADER_ONLY_SIZE+rsocket->send_len[i],0,&rsocket->addr,sizeof(SOCKADDR), PSNET_TYPE_RELIABLE); + bytesout = SENDTO(Unreliable_socket, (char *)&send_header,RELIABLE_PACKET_HEADER_ONLY_SIZE+rsocket->send_len[i],0,&rsocket->addr,sizeof(struct sockaddr), PSNET_TYPE_RELIABLE); break; case NET_TCP: if(!Tcp_active){ return 0; } multi_rate_add(np_index, "tcp(h)", RELIABLE_PACKET_HEADER_ONLY_SIZE+rsocket->send_len[i]); - bytesout = SENDTO(Unreliable_socket, (char *)&send_header,RELIABLE_PACKET_HEADER_ONLY_SIZE+rsocket->send_len[i],0,&rsocket->addr,sizeof(SOCKADDR), PSNET_TYPE_RELIABLE); + bytesout = SENDTO(Unreliable_socket, (char *)&send_header,RELIABLE_PACKET_HEADER_ONLY_SIZE+rsocket->send_len[i],0,&rsocket->addr,sizeof(struct sockaddr), PSNET_TYPE_RELIABLE); break; default: ml_printf("Unknown protocol type in nw_SendReliable()!\n"); @@ -1448,11 +1448,11 @@ void psnet_rel_work() int rcode = -1; int max_len = NETBUFFERSIZE; fd_set read_fds; - TIMEVAL timeout; + struct timeval timeout; static reliable_header rcv_buff; - static SOCKADDR rcv_addr; + static struct sockaddr rcv_addr; int bytesin = 0; - int addrlen = sizeof(SOCKADDR); + int addrlen = sizeof(struct sockaddr); timeout.tv_sec=0; timeout.tv_usec=0; @@ -1477,7 +1477,7 @@ void psnet_rel_work() Int3(); return; } - ret = SENDTO(Unreliable_socket, (char *)&conn_header,RELIABLE_PACKET_HEADER_ONLY_SIZE,0,&Reliable_sockets[Serverconn].addr,sizeof(SOCKADDR), PSNET_TYPE_RELIABLE); + ret = SENDTO(Unreliable_socket, (char *)&conn_header,RELIABLE_PACKET_HEADER_ONLY_SIZE,0,&Reliable_sockets[Serverconn].addr,sizeof(struct sockaddr), PSNET_TYPE_RELIABLE); break; case NET_TCP: if(!Tcp_active){ @@ -1485,7 +1485,7 @@ void psnet_rel_work() Int3(); return; } - ret = SENDTO(Unreliable_socket, (char *)&conn_header,RELIABLE_PACKET_HEADER_ONLY_SIZE,0,&Reliable_sockets[Serverconn].addr,sizeof(SOCKADDR), PSNET_TYPE_RELIABLE); + ret = SENDTO(Unreliable_socket, (char *)&conn_header,RELIABLE_PACKET_HEADER_ONLY_SIZE,0,&Reliable_sockets[Serverconn].addr,sizeof(struct sockaddr), PSNET_TYPE_RELIABLE); break; default: ml_printf("Unknown protocol type in nw_WorkReliable()!\n"); @@ -1503,7 +1503,7 @@ void psnet_rel_work() ubyte link_type; net_addr_t d3_rcv_addr; - SOCKADDR_IN *rcvaddr; + struct sockaddr_in *rcvaddr; int ipx_has_data = 0; int udp_has_data = 0; do { @@ -1528,23 +1528,23 @@ void psnet_rel_work() #endif } bytesin = 0; - addrlen = sizeof(SOCKADDR); + addrlen = sizeof(struct sockaddr); if(ipx_has_data){ #ifndef PLAT_UNIX SOCKADDR_IPX *ipx_addr = (SOCKADDR_IPX *)&rcv_addr; memset(&d3_rcv_addr,0,sizeof(net_addr_t)); - memset(&rcv_addr,0,sizeof(SOCKADDR)); - bytesin = RECVFROM(Unreliable_socket, (char *)&rcv_buff,sizeof(reliable_header),0,(SOCKADDR *)&rcv_addr,&addrlen, PSNET_TYPE_RELIABLE); + memset(&rcv_addr,0,sizeof(struct sockaddr)); + bytesin = RECVFROM(Unreliable_socket, (char *)&rcv_buff,sizeof(reliable_header),0,(struct sockaddr *)&rcv_addr,&addrlen, PSNET_TYPE_RELIABLE); memcpy(d3_rcv_addr.addr, ipx_addr->sa_nodenum, 6); memcpy(d3_rcv_addr.net_id, ipx_addr->sa_netnum, 4); d3_rcv_addr.type = NET_IPX; link_type = NET_IPX; #endif } else if(udp_has_data){ - SOCKADDR_IN *tcp_addr = (SOCKADDR_IN *)&rcv_addr; + struct sockaddr_in *tcp_addr = (struct sockaddr_in *)&rcv_addr; memset(&d3_rcv_addr,0,sizeof(net_addr_t)); - memset(&rcv_addr,0,sizeof(SOCKADDR)); - bytesin = RECVFROM(Unreliable_socket, (char *)&rcv_buff,sizeof(reliable_header), 0, (SOCKADDR *)&rcv_addr,&addrlen, PSNET_TYPE_RELIABLE); + memset(&rcv_addr,0,sizeof(struct sockaddr)); + bytesin = RECVFROM(Unreliable_socket, (char *)&rcv_buff,sizeof(reliable_header), 0, (struct sockaddr *)&rcv_addr,&addrlen, PSNET_TYPE_RELIABLE); rcv_buff.seq = INTEL_SHORT( rcv_buff.seq ); rcv_buff.data_len = INTEL_SHORT( rcv_buff.data_len ); rcv_buff.send_time = INTEL_FLOAT( rcv_buff.send_time ); @@ -1567,7 +1567,7 @@ void psnet_rel_work() if(rcv_buff.type == RNT_REQ_CONN){ for(i=1; isin_addr), htons(rcvaddr->sin_port)); break; } @@ -1605,7 +1605,7 @@ void psnet_rel_work() } //Find out if this is a packet from someone we were expecting a packet. - rcvaddr = (SOCKADDR_IN *)&rcv_addr; + rcvaddr = (struct sockaddr_in *)&rcv_addr; for(i=1; isend_len[i] ); send_header.type = RNT_DATA; if(rsocket->connection_type == NET_TCP){ - rcode = SENDTO(Unreliable_socket, (char *)&send_header,RELIABLE_PACKET_HEADER_ONLY_SIZE+rsocket->send_len[i],0,&rsocket->addr,sizeof(SOCKADDR), PSNET_TYPE_RELIABLE); + rcode = SENDTO(Unreliable_socket, (char *)&send_header,RELIABLE_PACKET_HEADER_ONLY_SIZE+rsocket->send_len[i],0,&rsocket->addr,sizeof(struct sockaddr), PSNET_TYPE_RELIABLE); } else if(rsocket->connection_type == NET_IPX){ - rcode = SENDTO(Unreliable_socket, (char *)&send_header,RELIABLE_PACKET_HEADER_ONLY_SIZE+rsocket->send_len[i],0,&rsocket->addr,sizeof(SOCKADDR), PSNET_TYPE_RELIABLE); + rcode = SENDTO(Unreliable_socket, (char *)&send_header,RELIABLE_PACKET_HEADER_ONLY_SIZE+rsocket->send_len[i],0,&rsocket->addr,sizeof(struct sockaddr), PSNET_TYPE_RELIABLE); } if((rcode == SOCKET_ERROR) && (WSAEWOULDBLOCK == WSAGetLastError())){ //The packet didn't get sent, flag it to try again next frame @@ -1813,9 +1813,9 @@ void psnet_rel_work() rcode = -1; if(rsocket->connection_type == NET_TCP){ - rcode = SENDTO(Unreliable_socket, (char *)&send_header,RELIABLE_PACKET_HEADER_ONLY_SIZE,0,&rsocket->addr,sizeof(SOCKADDR), PSNET_TYPE_RELIABLE); + rcode = SENDTO(Unreliable_socket, (char *)&send_header,RELIABLE_PACKET_HEADER_ONLY_SIZE,0,&rsocket->addr,sizeof(struct sockaddr), PSNET_TYPE_RELIABLE); } else if(rsocket->connection_type == NET_IPX){ - rcode = SENDTO(Unreliable_socket, (char *)&send_header,RELIABLE_PACKET_HEADER_ONLY_SIZE,0,&rsocket->addr,sizeof(SOCKADDR), PSNET_TYPE_RELIABLE); + rcode = SENDTO(Unreliable_socket, (char *)&send_header,RELIABLE_PACKET_HEADER_ONLY_SIZE,0,&rsocket->addr,sizeof(struct sockaddr), PSNET_TYPE_RELIABLE); } if((rcode != SOCKET_ERROR) && (WSAEWOULDBLOCK != WSAGetLastError())){ //It must have been sent @@ -1846,7 +1846,7 @@ int psnet_rel_get_status(PSNET_SOCKET_RELIABLE socketid) // returns 0 on error or nothing waiting. 1 if we should try to accept int psnet_rel_check_for_listen(net_addr_t *from_addr) { - SOCKADDR_IN *ip_addr; // UDP/TCP socket structure + struct sockaddr_in *ip_addr; // UDP/TCP socket structure #ifndef PLAT_UNIX SOCKADDR_IPX *ipx_addr; // IPX socket structure #endif @@ -1856,7 +1856,7 @@ int psnet_rel_check_for_listen(net_addr_t *from_addr) for(i=1; iport = ntohs( ip_addr->sin_port ); from_addr->type = NET_TCP; @@ -1903,12 +1903,12 @@ int psnet_rel_check_for_listen(net_addr_t *from_addr) void psnet_rel_connect_to_server(PSNET_SOCKET *socket, net_addr_t *server_addr) { //Send out a RNT_REQ_CONN packet, and wait for it to be acked. - SOCKADDR_IN sockaddr; // UDP/TCP socket structure + struct sockaddr_in sockaddr; // UDP/TCP socket structure #ifndef PLAT_UNIX SOCKADDR_IPX ipx_addr; // IPX socket structure #endif - SOCKADDR *addr = NULL; // pointer to SOCKADDR to make coding easier - SOCKADDR rcv_addr; + struct sockaddr *addr = NULL; // pointer to struct sockaddr to make coding easier + struct sockaddr rcv_addr; int addrlen; ubyte iaddr[6]; ushort port; @@ -1948,8 +1948,8 @@ void psnet_rel_connect_to_server(PSNET_SOCKET *socket, net_addr_t *server_addr) #else while(SELECT(Unreliable_socket+1, &read_fds, NULL, NULL, &timeout, PSNET_TYPE_RELIABLE)){ #endif - addrlen = sizeof(SOCKADDR); - bytesin = RECVFROM(Unreliable_socket, (char *)&ack_header,sizeof(reliable_header),0,(SOCKADDR *)&rcv_addr,&addrlen, PSNET_TYPE_RELIABLE); + addrlen = sizeof(struct sockaddr); + bytesin = RECVFROM(Unreliable_socket, (char *)&ack_header,sizeof(reliable_header),0,(struct sockaddr *)&rcv_addr,&addrlen, PSNET_TYPE_RELIABLE); if(bytesin==-1){ //Int3();//See Kevin ml_printf("UDP recvfrom returned an error! -- %d\n",WSAGetLastError()); @@ -1969,8 +1969,8 @@ void psnet_rel_connect_to_server(PSNET_SOCKET *socket, net_addr_t *server_addr) while(SELECT(Unreliable_socket+1, &read_fds, NULL, NULL, &timeout, PSNET_TYPE_RELIABLE)) #endif { - addrlen = sizeof(SOCKADDR); - bytesin = RECVFROM(Unreliable_socket, (char *)&ack_header,sizeof(reliable_header),0,(SOCKADDR *)&rcv_addr,&addrlen, PSNET_TYPE_RELIABLE); + addrlen = sizeof(struct sockaddr); + bytesin = RECVFROM(Unreliable_socket, (char *)&ack_header,sizeof(reliable_header),0,(struct sockaddr *)&rcv_addr,&addrlen, PSNET_TYPE_RELIABLE); if(bytesin==-1) { //Int3();//See Kevin @@ -1994,8 +1994,8 @@ void psnet_rel_connect_to_server(PSNET_SOCKET *socket, net_addr_t *server_addr) memcpy(ipx_addr.sa_nodenum, iaddr, 6); memcpy(ipx_addr.sa_netnum, server_addr->net_id, 4); ipx_addr.sa_socket = htons(port); - addr = (SOCKADDR *)&ipx_addr; - if( SOCKET_ERROR == SENDTO(Unreliable_socket, (char *)&conn_header,RELIABLE_PACKET_HEADER_ONLY_SIZE,0,addr,sizeof(SOCKADDR), PSNET_TYPE_RELIABLE) ){ + addr = (struct sockaddr *)&ipx_addr; + if( SOCKET_ERROR == SENDTO(Unreliable_socket, (char *)&conn_header,RELIABLE_PACKET_HEADER_ONLY_SIZE,0,addr,sizeof(struct sockaddr), PSNET_TYPE_RELIABLE) ){ ml_printf("Unable to send IPX packet in nw_ConnectToServer()! -- %d\n",WSAGetLastError()); return; } @@ -2009,8 +2009,8 @@ void psnet_rel_connect_to_server(PSNET_SOCKET *socket, net_addr_t *server_addr) sockaddr.sin_family = AF_INET; memcpy(&sockaddr.sin_addr.s_addr, iaddr, 4); sockaddr.sin_port = htons(port); - addr = (SOCKADDR *)&sockaddr; - if( SOCKET_ERROR == SENDTO(Unreliable_socket, (char *)&conn_header,RELIABLE_PACKET_HEADER_ONLY_SIZE,0,addr,sizeof(SOCKADDR), PSNET_TYPE_RELIABLE) ){ + addr = (struct sockaddr *)&sockaddr; + if( SOCKET_ERROR == SENDTO(Unreliable_socket, (char *)&conn_header,RELIABLE_PACKET_HEADER_ONLY_SIZE,0,addr,sizeof(struct sockaddr), PSNET_TYPE_RELIABLE) ){ ml_printf("Unable to send UDP packet in nw_ConnectToServer()! -- %d\n",WSAGetLastError()); return; } @@ -2044,8 +2044,8 @@ void psnet_rel_connect_to_server(PSNET_SOCKET *socket, net_addr_t *server_addr) #endif ml_string("selected() in psnet_rel_connect_to_server()"); - addrlen = sizeof(SOCKADDR); - bytesin = RECVFROM(typeless_sock,(char *)&ack_header,sizeof(reliable_header),0,(SOCKADDR *)&rcv_addr,&addrlen, PSNET_TYPE_RELIABLE); + addrlen = sizeof(struct sockaddr); + bytesin = RECVFROM(typeless_sock,(char *)&ack_header,sizeof(reliable_header),0,(struct sockaddr *)&rcv_addr,&addrlen, PSNET_TYPE_RELIABLE); if(bytesin==-1){ ml_printf("recvfrom returned an error! -- %d\n",WSAGetLastError()); Int3();//See Kevin @@ -2065,7 +2065,7 @@ void psnet_rel_connect_to_server(PSNET_SOCKET *socket, net_addr_t *server_addr) Reliable_sockets[i].connection_type = (ubyte)server_addr->type; memcpy(&Reliable_sockets[i].net_addr,&d3_rcv_addr,sizeof(net_addr_t)); Reliable_sockets[i].last_packet_received = psnet_get_time(); - memcpy(&Reliable_sockets[i].addr,&rcv_addr,sizeof(SOCKADDR)); + memcpy(&Reliable_sockets[i].addr,&rcv_addr,sizeof(struct sockaddr)); Reliable_sockets[i].status = RNF_LIMBO; *socket = i; ml_printf("Succesfully connected to server in nw_ConnectToServer().\n"); @@ -2076,7 +2076,7 @@ void psnet_rel_connect_to_server(PSNET_SOCKET *socket, net_addr_t *server_addr) Serverconn = i; First_sent_iamhere = psnet_get_time(); Last_sent_iamhere = psnet_get_time(); - int rcode = SENDTO(typeless_sock,(char *)&conn_header,RELIABLE_PACKET_HEADER_ONLY_SIZE,0,addr,sizeof(SOCKADDR), PSNET_TYPE_RELIABLE); + int rcode = SENDTO(typeless_sock,(char *)&conn_header,RELIABLE_PACKET_HEADER_ONLY_SIZE,0,addr,sizeof(struct sockaddr), PSNET_TYPE_RELIABLE); if(rcode == SOCKET_ERROR){ *socket = INVALID_SOCKET; Reliable_sockets[i].status = RNF_UNUSED; @@ -2104,7 +2104,7 @@ void psnet_rel_connect_to_server(PSNET_SOCKET *socket, net_addr_t *server_addr) if((psnet_get_time()-time_sent_req)>2) { ml_printf("Resending connect request.\n"); - int ret = SENDTO(typeless_sock,(char *)&conn_header,RELIABLE_PACKET_HEADER_ONLY_SIZE,0,addr,sizeof(SOCKADDR), PSNET_TYPE_RELIABLE); + int ret = SENDTO(typeless_sock,(char *)&conn_header,RELIABLE_PACKET_HEADER_ONLY_SIZE,0,addr,sizeof(struct sockaddr), PSNET_TYPE_RELIABLE); if(ret != SOCKET_ERROR){ time_sent_req = psnet_get_time(); } else { @@ -2122,7 +2122,7 @@ int psnet_rel_get_ip() { char local[255]; LPHOSTENT hostent; - SOCKADDR_IN local_address; + struct sockaddr_in local_address; int ret; // Get the local host name @@ -2145,7 +2145,7 @@ int psnet_rel_get_ip() // returns the ip address of this computer int psnet_get_ip() { - SOCKADDR_IN local_address; + struct sockaddr_in local_address; if(Psnet_connection == NETWORK_CONNECTION_DIALUP){ local_address.sin_addr.s_addr = psnet_ras_status(); @@ -2167,7 +2167,7 @@ int psnet_get_ip() int psnet_init_rel_tcp(int port, int should_listen) { /* - SOCKADDR_IN sockaddr; + struct sockaddr_in sockaddr; sockaddr.sin_port = htons((ushort)port); sockaddr.sin_family = AF_INET; @@ -2183,7 +2183,7 @@ int psnet_init_rel_tcp(int port, int should_listen) ml_printf("Unable to create reliable UDP socket -- %d\n", WSAGetLastError() ); return 0; - } else if(bind(Reliable_UDP_socket,(SOCKADDR *)&sockaddr,sizeof(SOCKADDR))!=0){ + } else if(bind(Reliable_UDP_socket,(struct sockaddr *)&sockaddr,sizeof(struct sockaddr))!=0){ ml_printf("Unable to bind reliable socket -- %d\n", WSAGetLastError() ); return 0; @@ -2224,7 +2224,7 @@ int psnet_init_rel_ipx(int port, int should_listen) ml_printf("Unable to create reliable IPX socket -- %d\n", WSAGetLastError() ); return 0; - } else if(bind(Reliable_IPX_socket,(SOCKADDR *)&ipx_addr,sizeof(SOCKADDR))!=0){ + } else if(bind(Reliable_IPX_socket,(struct sockaddr *)&ipx_addr,sizeof(struct sockaddr))!=0){ ml_printf("Unable to bind reliable IPX socket -- %d\n", WSAGetLastError() ); return 0; @@ -2704,7 +2704,7 @@ int psnet_init_ipx() memset(&sockaddr,0,sizeof(SOCKADDR_IPX)); sockaddr.sa_family = AF_IPX; sockaddr.sa_socket = htons( Psnet_default_port ); - if ( bind(IPX_socket, (SOCKADDR*)&sockaddr, sizeof (SOCKADDR_IPX)) == SOCKET_ERROR) { + if ( bind(IPX_socket, (struct sockaddr*)&sockaddr, sizeof (SOCKADDR_IPX)) == SOCKET_ERROR) { Ipx_failure_code = WSAGetLastError(); ml_printf("Couldn't bind IPX socket (%d)! Invalidating IPX\n", Ipx_failure_code ); return 0; @@ -2722,7 +2722,7 @@ int psnet_init_ipx() // initialize tcp socket int psnet_init_tcp() { - SOCKADDR_IN sockaddr; + struct sockaddr_in sockaddr; TCP_socket = INVALID_SOCKET; @@ -2734,11 +2734,11 @@ int psnet_init_tcp() } // bind the socket - memset(&sockaddr,0,sizeof(SOCKADDR_IN)); + memset(&sockaddr,0,sizeof(struct sockaddr_in)); sockaddr.sin_family = AF_INET; sockaddr.sin_addr.s_addr = psnet_get_ip(); sockaddr.sin_port = htons( Psnet_default_port ); - if ( bind(TCP_socket, (SOCKADDR*)&sockaddr, sizeof (sockaddr)) == SOCKET_ERROR) { + if ( bind(TCP_socket, (struct sockaddr*)&sockaddr, sizeof (sockaddr)) == SOCKET_ERROR) { Tcp_failure_code = WSAGetLastError(); ml_printf("Couldn't bind TCP socket (%d)! Invalidating TCP\n", Tcp_failure_code ); return 0; diff --git a/src/osapi/osapi.cpp b/src/osapi/osapi.cpp index 7a31083..0b57bdb 100644 --- a/src/osapi/osapi.cpp +++ b/src/osapi/osapi.cpp @@ -185,7 +185,6 @@ void os_deinit(); // initialization/shutdown functions ----------------------------------------------- -extern void cf_create_directory( int dir_type ); // If app_name is NULL or ommited, then TITLE is used // for the app name, which is where registry keys are stored. diff --git a/src/osapi/outwnd.cpp b/src/osapi/outwnd.cpp index f782daf..5f40aeb 100644 --- a/src/osapi/outwnd.cpp +++ b/src/osapi/outwnd.cpp @@ -170,8 +170,6 @@ #include "cfilesystem.h" -extern void cf_create_directory( int dir_type ); - void outwnd_print(const char *id, const char *tmp); #define MAX_FILTERS 48 diff --git a/src/platform/platform.cpp b/src/platform/platform.cpp index df66ec8..06eb997 100644 --- a/src/platform/platform.cpp +++ b/src/platform/platform.cpp @@ -184,3 +184,38 @@ void Error( const char * filename, int line, const char * format, ... ) exit (1); } + +void base_filename(const char *path, char *filename, const int max_fname) +{ + if ( (filename == NULL) || (max_fname <= 0) ) { + return; + } + + if (path == NULL) { + filename[0] = '\0'; + return; + } + + const char *sep = SDL_strrchr(path, DIR_SEPARATOR_CHAR); + + if (sep) { + sep++; // move past separator + } else { + sep = path; + } + + const char *ext = SDL_strrchr(path, '.'); + + if (ext == NULL) { + ext = sep + SDL_strlen(sep); // to end + } + + // NOTE: 'size' must include NULL terminator + int size = min((int)(ext - sep + 1), max_fname); + + if (size <= 0) { + filename[0] = '\0'; + } else { + SDL_strlcpy(filename, sep, size); + } +} diff --git a/src/platform/unix.cpp b/src/platform/unix.cpp index 8bbf4e5..391449b 100644 --- a/src/platform/unix.cpp +++ b/src/platform/unix.cpp @@ -6,15 +6,12 @@ * the source. */ +#ifdef PLAT_UNIX -#include #include -#include #include #include -#include "pstypes.h" - int filelength (int fd) { @@ -30,30 +27,5 @@ int WSAGetLastError() return errno; } -void _splitpath (const char *path, char *drive, char *dir, char *fname, char *ext) -{ - if (path == NULL) - return; - /* fs2 only uses fname */ - if (fname != NULL) { - const char *ls = strrchr(path, '/'); - if (ls != NULL) { - ls++; // move past '/' - } else { - ls = path; - } - - const char *lp = strrchr(path, '.'); - if (lp == NULL) { - lp = ls + strlen(ls); // move to the end - } - - int dist = lp-ls; - if (dist > (_MAX_FNAME-1)) - dist = _MAX_FNAME-1; - - strncpy(fname, ls, dist); - fname[dist] = 0; // add null, just in case - } -} +#endif diff --git a/src/playerman/managepilot.cpp b/src/playerman/managepilot.cpp index 50c46c6..9f046e8 100644 --- a/src/playerman/managepilot.cpp +++ b/src/playerman/managepilot.cpp @@ -307,7 +307,7 @@ void delete_pilot_file( const char *pilot_name, int single ) // get the player file. - _splitpath(pilot_name, NULL, NULL, basename, NULL); + base_filename(pilot_name, basename, sizeof(basename)); SDL_strlcpy( filename, basename, sizeof(filename) ); SDL_strlcat(filename, NOX(".plr"), sizeof(filename) ); diff --git a/src/playerman/playercontrol.cpp b/src/playerman/playercontrol.cpp index d76f9ac..460ffd8 100644 --- a/src/playerman/playercontrol.cpp +++ b/src/playerman/playercontrol.cpp @@ -1310,7 +1310,7 @@ void player_match_target_speed(char *no_target_text, char *match_off_text, char // and a descent style ship. int use_descent = 0; -LOCAL physics_info phys_save; +static physics_info phys_save; void toggle_player_object() { diff --git a/src/radar/radar.cpp b/src/radar/radar.cpp index 03379ac..e6624be 100644 --- a/src/radar/radar.cpp +++ b/src/radar/radar.cpp @@ -506,7 +506,7 @@ void radar_plot_object( object *objp ) float hypotenuse; float max_radius; - hypotenuse = (float)_hypot(new_x_dist, new_y_dist); + hypotenuse = hypotf(new_x_dist, new_y_dist); max_radius = i2fl(Radar_radius[gr_screen.res][0] - 5); if (hypotenuse >= (max_radius) ) { diff --git a/src/ship/aicode.cpp b/src/ship/aicode.cpp index 5affdff..3527cc4 100644 --- a/src/ship/aicode.cpp +++ b/src/ship/aicode.cpp @@ -1099,7 +1099,7 @@ void parse_aitbl() lcl_ext_close(); } -LOCAL int ai_inited = 0; +static int ai_inited = 0; //========================= BOOK-KEEPING FUNCTIONS ======================= diff --git a/src/stats/medals.cpp b/src/stats/medals.cpp index 33fd40d..948ac93 100644 --- a/src/stats/medals.cpp +++ b/src/stats/medals.cpp @@ -972,7 +972,7 @@ void init_medal_bitmaps() // which of the possible version to use based on the player's count of this medal SDL_strlcpy( filename, Medals[idx].bitmap, sizeof(filename) ); - _splitpath( filename, NULL, NULL, base, NULL ); + base_filename(filename, base, sizeof(base)); num_medals = Player_score->medals[idx]; diff --git a/src/weapon/swarm.cpp b/src/weapon/swarm.cpp index f1f85f5..2a1dcee 100644 --- a/src/weapon/swarm.cpp +++ b/src/weapon/swarm.cpp @@ -356,7 +356,7 @@ void swarm_update_direction(object *objp, float frametime) missile_dist=i2fl(SWARM_DIST_OFFSET); } swarmp->angle_offset = (float)(asin(SWARM_DIST_OFFSET / missile_dist)); - SDL_assert(!_isnan(swarmp->angle_offset) ); + SDL_assert(!isnan(swarmp->angle_offset) ); } swarmp->change_timestamp = timestamp(swarmp->change_time); @@ -374,7 +374,7 @@ void swarm_update_direction(object *objp, float frametime) missile_speed = pi->speed; missile_dist = missile_speed * swarmp->change_time/1000.0f; swarmp->angle_offset = (float)(asin(SWARM_DIST_OFFSET / missile_dist)); - SDL_assert(!_isnan(swarmp->angle_offset) ); + SDL_assert(!isnan(swarmp->angle_offset) ); } vm_vec_sub(&obj_to_target, &swarmp->original_target, &objp->pos); -- 2.39.2