diff --git a/common/main/fwdobject.h b/common/main/fwdobject.h index 3772e64f6..9abcda1d3 100644 --- a/common/main/fwdobject.h +++ b/common/main/fwdobject.h @@ -206,7 +206,7 @@ void compress_objects(); void render_object(vobjptridx_t obj); // Draw a blob-type object, like a fireball -void draw_object_blob(object &obj, bitmap_index bitmap); +void draw_object_blob(vobjptr_t obj, bitmap_index bitmap); // draw an object that is a texture-mapped rod void draw_object_tmap_rod(vobjptridx_t obj, bitmap_index bitmap, int lighted); diff --git a/common/main/laser.h b/common/main/laser.h index 211c89efb..90b58bfe4 100644 --- a/common/main/laser.h +++ b/common/main/laser.h @@ -162,7 +162,7 @@ enum laser_level_t #define HOMING_TURN_TIME (DESIGNATED_GAME_FRAMETIME) -void Laser_render(object &obj); +void Laser_render(vobjptr_t obj); objptridx_t Laser_player_fire(vobjptridx_t obj, enum weapon_type_t laser_type, int gun_num, int make_sound, vms_vector shot_orientation); void Laser_do_weapon_sequence(vobjptridx_t obj); void Flare_create(vobjptridx_t obj); diff --git a/similar/main/laser.cpp b/similar/main/laser.cpp index 9880923f2..093a9fa8b 100644 --- a/similar/main/laser.cpp +++ b/similar/main/laser.cpp @@ -77,7 +77,7 @@ static objptridx_t find_homing_object(const vms_vector &curpos, const vobjptridx // Called by render code.... determines if the laser is from a robot or the // player and calls the appropriate routine. -void Laser_render(object &obj) +void Laser_render(const vobjptr_t obj) { // Commented out by John (sort of, typed by Mike) on 6/8/94 @@ -92,14 +92,15 @@ void Laser_render(object &obj) Error( "Invalid weapon type in Laser_render\n" ); } #endif - - switch( Weapon_info[get_weapon_id(&obj)].render_type ) { + auto &wi = Weapon_info[get_weapon_id(obj)]; + switch(wi.render_type) + { case WEAPON_RENDER_LASER: Int3(); // Not supported anymore! //Laser_draw_one(obj-Objects, Weapon_info[obj->id].bitmap ); break; case WEAPON_RENDER_BLOB: - draw_object_blob(obj, Weapon_info[get_weapon_id(&obj)].bitmap ); + draw_object_blob(obj, wi.bitmap); break; case WEAPON_RENDER_POLYMODEL: break; diff --git a/similar/main/object.cpp b/similar/main/object.cpp index 45a77f5ef..8fc3892ab 100644 --- a/similar/main/object.cpp +++ b/similar/main/object.cpp @@ -189,25 +189,25 @@ objptridx_t obj_find_first_of_type(int type) } //draw an object that has one bitmap & doesn't rotate -void draw_object_blob(object &obj,bitmap_index bmi) +void draw_object_blob(const vobjptr_t obj,bitmap_index bmi) { grs_bitmap * bm = &GameBitmaps[bmi.index]; - vms_vector pos = obj.pos; + vms_vector pos = obj->pos; PIGGY_PAGE_IN( bmi ); // draw these with slight offset to viewer preventing too much ugly clipping - if ( obj.type == OBJ_FIREBALL && obj.id == VCLIP_VOLATILE_WALL_HIT ) + if ( obj->type == OBJ_FIREBALL && obj->id == VCLIP_VOLATILE_WALL_HIT ) { vms_vector offs_vec; - vm_vec_normalized_dir_quick(offs_vec,Viewer->pos,obj.pos); + vm_vec_normalized_dir_quick(offs_vec,Viewer->pos,obj->pos); vm_vec_scale_add2(pos,offs_vec,F1_0); } if (bm->bm_w > bm->bm_h) - g3_draw_bitmap(pos,obj.size,fixmuldiv(obj.size,bm->bm_h,bm->bm_w),*bm); + g3_draw_bitmap(pos,obj->size,fixmuldiv(obj->size,bm->bm_h,bm->bm_w),*bm); else - g3_draw_bitmap(pos,fixmuldiv(obj.size,bm->bm_w,bm->bm_h),obj.size,*bm); + g3_draw_bitmap(pos,fixmuldiv(obj->size,bm->bm_w,bm->bm_h),obj->size,*bm); } //draw an object that is a texture-mapped rod diff --git a/similar/main/powerup.cpp b/similar/main/powerup.cpp index bef1e953e..74fc2b0e0 100644 --- a/similar/main/powerup.cpp +++ b/similar/main/powerup.cpp @@ -118,7 +118,7 @@ void do_powerup_frame(const vobjptridx_t obj) void draw_powerup(const vobjptridx_t obj) { - draw_object_blob(*obj, Vclip[obj->rtype.vclip_info.vclip_num].frames[obj->rtype.vclip_info.framenum] ); + draw_object_blob(obj, Vclip[obj->rtype.vclip_info.vclip_num].frames[obj->rtype.vclip_info.framenum] ); } static void _powerup_basic_nonhud(int redadd, int greenadd, int blueadd, int score) diff --git a/similar/main/vclip.cpp b/similar/main/vclip.cpp index 2d771ab74..ed641f0a5 100644 --- a/similar/main/vclip.cpp +++ b/similar/main/vclip.cpp @@ -60,7 +60,7 @@ void draw_vclip_object(const vobjptridx_t obj,fix timeleft,int lighted, int vcli else { Assert(lighted==0); //blob cannot now be lighted - draw_object_blob(*obj, Vclip[vclip_num].frames[bitmapnum] ); + draw_object_blob(obj, Vclip[vclip_num].frames[bitmapnum] ); } }