From d3b4d9485e65566547de805a8906d4956a5038df Mon Sep 17 00:00:00 2001 From: zicodxx Date: Thu, 24 Feb 2011 11:28:59 +0100 Subject: [PATCH] Using gr_init_bitmap for hoard data initialization; Correctly free hoard data before the program closes; When reloading the main HAM files, made sure it does not try to reload main game sounds from shareware/demo HAM --- CHANGELOG.txt | 1 + main/multi.c | 39 ++++++++++++++++++++------------------- main/piggy.c | 8 ++++++++ 3 files changed, 29 insertions(+), 19 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 40a3b9aff..4d0b2ac04 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -3,6 +3,7 @@ D2X-Rebirth Changelog 20110224 -------- 2d/canvas.c: Fix for last revision: Correctly initialize cv_fade_level and cv_blend_func when creating initializing a canvas +main/multi.c, main/piggy.c: Using gr_init_bitmap for hoard data initialization; Correctly free hoard data before the program closes; When reloading the main HAM files, made sure it does not try to reload main game sounds from shareware/demo HAM 20110223 -------- diff --git a/main/multi.c b/main/multi.c index ee9f28a41..a75e08b0c 100644 --- a/main/multi.c +++ b/main/multi.c @@ -5143,21 +5143,19 @@ int HoardEquipped() return (checked); } -void init_bitmap(grs_bitmap *bm,int w,int h,int flags,ubyte *data) -{ - bm->bm_x = bm->bm_y = 0; - bm->bm_w = bm->bm_rowsize = w; - bm->bm_h = h; - bm->bm_type = BM_LINEAR; - bm->bm_flags = flags; - bm->bm_data = data; - bm->bm_handle = 0; - bm->avg_color = 0; -} - grs_bitmap Orb_icons[2]; +int Hoard_goal_eclip, Hoard_bm_idx, Hoard_snd_idx; -int Hoard_goal_eclip; +void free_hoard_data() +{ + int i; + + d_free(GameBitmaps[Hoard_bm_idx].bm_data); + for (i = Hoard_snd_idx; i < Hoard_snd_idx+4; i++) + d_free(GameSounds[i].data); + for (i = 0; i < 2; i++) + d_free(Orb_icons[i].bm_data); +} void init_hoard_data() { @@ -5185,7 +5183,7 @@ void init_hoard_data() if (first_time) { ubyte *bitmap_data; - int bitmap_num=Num_bitmap_files; + int bitmap_num=Hoard_bm_idx=Num_bitmap_files; //Allocate memory for bitmaps MALLOC( bitmap_data, ubyte, n_orb_frames*orb_w*orb_h + n_goal_frames*64*64 ); @@ -5201,7 +5199,8 @@ void init_hoard_data() Vclip[orb_vclip].light_value = F1_0; for (i=0;i