From 7000f00f57584926699a819be6993555fdf47169 Mon Sep 17 00:00:00 2001 From: Bradley Bell Date: Sun, 23 Mar 2003 23:34:38 +0000 Subject: [PATCH] stop extra robots from overwriting exit models --- ChangeLog | 2 ++ main/bm.c | 12 +++++++----- main/polyobj.c | 7 ++++--- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1fb7ae88..a2a8baad 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,7 @@ 2003-03-23 Bradley Bell + * main/bm.c: stop extra robots from overwriting exit models + * include/ogl_init.h: increased OGL_TEXTURE_LIST_SIZE so the texture list doesn't get full diff --git a/main/bm.c b/main/bm.c index ece19d74..0f978af1 100644 --- a/main/bm.c +++ b/main/bm.c @@ -1,4 +1,4 @@ -/* $Id: bm.c,v 1.24 2003-03-23 22:39:58 btb Exp $ */ +/* $Id: bm.c,v 1.25 2003-03-23 23:34:38 btb Exp $ */ /* THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO @@ -229,8 +229,6 @@ int load_exit_models() exit_hamfile = cfopen(":Data:exit.ham","rb"); #endif - exit_modelnum = N_polygon_models++; - destroyed_exit_modelnum = N_polygon_models++; polymodel_read(&Polygon_models[exit_modelnum], exit_hamfile); polymodel_read(&Polygon_models[destroyed_exit_modelnum], exit_hamfile); Polygon_models[exit_modelnum].first_texture = start_num; @@ -355,8 +353,12 @@ void bm_read_all(CFILE * fp) if (Piggy_hamfile_version < 3) { exit_modelnum = cfile_read_int(fp); destroyed_exit_modelnum = cfile_read_int(fp); + } else { + exit_modelnum = N_polygon_models++; + destroyed_exit_modelnum = N_polygon_models++; + Polygon_models[exit_modelnum].model_data = NULL; + Polygon_models[destroyed_exit_modelnum].model_data = NULL; } - } #define D1_MAX_TEXTURES 800 @@ -508,7 +510,7 @@ void bm_read_all_d1(CFILE * fp) //extra items added after the release get written in an additional hamfile #define N_D2_ROBOT_TYPES 66 #define N_D2_ROBOT_JOINTS 1145 -#define N_D2_POLYGON_MODELS 166 +#define N_D2_POLYGON_MODELS 166 + 2 // add 2 for exit models #define N_D2_OBJBITMAPS 422 #define N_D2_OBJBITMAPPTRS 502 #define N_D2_WEAPON_TYPES 62 diff --git a/main/polyobj.c b/main/polyobj.c index b8f38901..97c7a88e 100644 --- a/main/polyobj.c +++ b/main/polyobj.c @@ -1,4 +1,4 @@ -/* $Id: polyobj.c,v 1.12 2003-02-13 22:07:58 btb Exp $ */ +/* $Id: polyobj.c,v 1.13 2003-03-23 23:34:38 btb Exp $ */ /* THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO @@ -17,7 +17,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #endif #ifdef RCS -static char rcsid[] = "$Id: polyobj.c,v 1.12 2003-02-13 22:07:58 btb Exp $"; +static char rcsid[] = "$Id: polyobj.c,v 1.13 2003-03-23 23:34:38 btb Exp $"; #endif #include @@ -580,7 +580,8 @@ int read_model_guns(char *filename,vms_vector *gun_points, vms_vector *gun_dirs, //free up a model, getting rid of all its memory void free_model(polymodel *po) { - d_free(po->model_data); + if (po->model_data) + d_free(po->model_data); } grs_bitmap *texture_list[MAX_POLYOBJ_TEXTURES]; -- 2.39.2