From 7c62bf98ef65927bab41a9142e31740ea7d50969 Mon Sep 17 00:00:00 2001 From: Kp Date: Sat, 18 Jan 2014 18:02:02 +0000 Subject: [PATCH] Use array<> for Powerup_info --- common/main/powerup.h | 9 +++------ d1x-rebirth/main/bmread.cpp | 3 ++- d2x-rebirth/main/bmread.cpp | 3 ++- similar/main/bm.cpp | 6 ++++-- similar/main/powerup.cpp | 22 +++++++--------------- 5 files changed, 18 insertions(+), 25 deletions(-) diff --git a/common/main/powerup.h b/common/main/powerup.h index 81f2d9c5c..e5cf5da56 100644 --- a/common/main/powerup.h +++ b/common/main/powerup.h @@ -125,8 +125,8 @@ struct powerup_type_info fix light; // amount of light cast by this powerup, set in bitmaps.tbl } __pack__; -extern int N_powerup_types; -extern powerup_type_info Powerup_info[MAX_POWERUP_TYPES]; +extern unsigned N_powerup_types; +extern array Powerup_info; #else struct powerup_type_info; #endif @@ -148,10 +148,7 @@ void powerup_basic_str(int redadd, int greenadd, int blueadd, int score, const c extern void powerup_basic(int redadd, int greenadd, int blueadd, int score, const char *format, ...) __attribute_format_printf(5, 6); #define powerup_basic(A1,A2,A3,A4,F,...) dxx_call_printf_checked(powerup_basic,powerup_basic_str,(A1,A2,A3,A4),(F),##__VA_ARGS__) -/* - * reads n powerup_type_info structs from a PHYSFS_file - */ -extern int powerup_type_info_read_n(powerup_type_info *pti, int n, PHYSFS_file *fp); +void powerup_type_info_read(PHYSFS_file *fp, powerup_type_info &pti); #endif diff --git a/d1x-rebirth/main/bmread.cpp b/d1x-rebirth/main/bmread.cpp index be0cc71a2..8ed5ee6a7 100644 --- a/d1x-rebirth/main/bmread.cpp +++ b/d1x-rebirth/main/bmread.cpp @@ -1754,7 +1754,8 @@ void bm_write_all(PHYSFS_file *fp) PHYSFS_write( fp, Weapon_info, sizeof(weapon_info), MAX_WEAPON_TYPES); PHYSFS_write( fp, &N_powerup_types, sizeof(int), 1); - PHYSFS_write( fp, Powerup_info, sizeof(powerup_type_info), MAX_POWERUP_TYPES); + range_for (const auto &p, Powerup_info) + PHYSFS_write( fp, &p, sizeof(p), 1); PHYSFS_write( fp, &N_polygon_models, sizeof(int), 1); PHYSFS_write( fp, Polygon_models, sizeof(polymodel), N_polygon_models); diff --git a/d2x-rebirth/main/bmread.cpp b/d2x-rebirth/main/bmread.cpp index aa2266a28..eb9332123 100644 --- a/d2x-rebirth/main/bmread.cpp +++ b/d2x-rebirth/main/bmread.cpp @@ -2139,7 +2139,8 @@ void bm_write_all(PHYSFS_file *fp) PHYSFSX_printf(tfile, "N_weapon_types = %d, Weapon_info array = %d\n", N_weapon_types, (int) sizeof(weapon_info)*N_weapon_types); PHYSFS_write( fp, &N_powerup_types, sizeof(int), 1 ); - PHYSFS_write( fp, Powerup_info, sizeof(powerup_type_info), N_powerup_types ); + range_for (const auto &p, partial_range(Powerup_info, N_powerup_types)) + PHYSFS_write( fp, &p, sizeof(p), 1 ); PHYSFSX_printf(tfile, "N_powerup_types = %d, Powerup_info array = %d\n", N_powerup_types, (int) sizeof(powerup_info)*N_powerup_types); t = N_D2_POLYGON_MODELS; diff --git a/similar/main/bm.cpp b/similar/main/bm.cpp index dedf6fb5d..99f695976 100644 --- a/similar/main/bm.cpp +++ b/similar/main/bm.cpp @@ -188,7 +188,8 @@ void properties_read_cmp(PHYSFS_file * fp) weapon_info_read_n(Weapon_info, MAX_WEAPON_TYPES, fp, 0); N_powerup_types = PHYSFSX_readInt(fp); - powerup_type_info_read_n(Powerup_info, MAX_POWERUP_TYPES, fp); + range_for (auto &p, Powerup_info) + powerup_type_info_read(fp, p); N_polygon_models = PHYSFSX_readInt(fp); polymodel_read_n(Polygon_models, N_polygon_models, fp); @@ -328,7 +329,8 @@ void bm_read_all(PHYSFS_file * fp) weapon_info_read_n(Weapon_info, N_weapon_types, fp, Piggy_hamfile_version); N_powerup_types = PHYSFSX_readInt(fp); - powerup_type_info_read_n(Powerup_info, N_powerup_types, fp); + range_for (auto &p, partial_range(Powerup_info, N_powerup_types)) + powerup_type_info_read(fp, p); N_polygon_models = PHYSFSX_readInt(fp); polymodel_read_n(Polygon_models, N_polygon_models, fp); diff --git a/similar/main/powerup.cpp b/similar/main/powerup.cpp index 2565087f6..111a434c3 100644 --- a/similar/main/powerup.cpp +++ b/similar/main/powerup.cpp @@ -59,8 +59,8 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #endif #include "playsave.h" -int N_powerup_types = 0; -powerup_type_info Powerup_info[MAX_POWERUP_TYPES]; +unsigned N_powerup_types; +array Powerup_info; //process this powerup for this frame void do_powerup_frame(objptridx_t obj) @@ -726,18 +726,10 @@ int do_powerup(objptridx_t obj) } -/* - * reads n powerup_type_info structs from a PHYSFS_file - */ -int powerup_type_info_read_n(powerup_type_info *pti, int n, PHYSFS_file *fp) +void powerup_type_info_read(PHYSFS_file *fp, powerup_type_info &pti) { - int i; - - for (i = 0; i < n; i++) { - pti[i].vclip_num = PHYSFSX_readInt(fp); - pti[i].hit_sound = PHYSFSX_readInt(fp); - pti[i].size = PHYSFSX_readFix(fp); - pti[i].light = PHYSFSX_readFix(fp); - } - return i; + pti.vclip_num = PHYSFSX_readInt(fp); + pti.hit_sound = PHYSFSX_readInt(fp); + pti.size = PHYSFSX_readFix(fp); + pti.light = PHYSFSX_readFix(fp); }