Switch Laser_render to vobjptr_t

This commit is contained in:
Kp 2014-11-30 22:09:23 +00:00
parent d79287e368
commit cf31cc4a5d
6 changed files with 15 additions and 14 deletions

View file

@ -206,7 +206,7 @@ void compress_objects();
void render_object(vobjptridx_t obj); void render_object(vobjptridx_t obj);
// Draw a blob-type object, like a fireball // 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 // draw an object that is a texture-mapped rod
void draw_object_tmap_rod(vobjptridx_t obj, bitmap_index bitmap, int lighted); void draw_object_tmap_rod(vobjptridx_t obj, bitmap_index bitmap, int lighted);

View file

@ -162,7 +162,7 @@ enum laser_level_t
#define HOMING_TURN_TIME (DESIGNATED_GAME_FRAMETIME) #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); 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 Laser_do_weapon_sequence(vobjptridx_t obj);
void Flare_create(vobjptridx_t obj); void Flare_create(vobjptridx_t obj);

View file

@ -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 // Called by render code.... determines if the laser is from a robot or the
// player and calls the appropriate routine. // 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 // 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" ); Error( "Invalid weapon type in Laser_render\n" );
} }
#endif #endif
auto &wi = Weapon_info[get_weapon_id(obj)];
switch( Weapon_info[get_weapon_id(&obj)].render_type ) { switch(wi.render_type)
{
case WEAPON_RENDER_LASER: case WEAPON_RENDER_LASER:
Int3(); // Not supported anymore! Int3(); // Not supported anymore!
//Laser_draw_one(obj-Objects, Weapon_info[obj->id].bitmap ); //Laser_draw_one(obj-Objects, Weapon_info[obj->id].bitmap );
break; break;
case WEAPON_RENDER_BLOB: case WEAPON_RENDER_BLOB:
draw_object_blob(obj, Weapon_info[get_weapon_id(&obj)].bitmap ); draw_object_blob(obj, wi.bitmap);
break; break;
case WEAPON_RENDER_POLYMODEL: case WEAPON_RENDER_POLYMODEL:
break; break;

View file

@ -189,25 +189,25 @@ objptridx_t obj_find_first_of_type(int type)
} }
//draw an object that has one bitmap & doesn't rotate //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]; grs_bitmap * bm = &GameBitmaps[bmi.index];
vms_vector pos = obj.pos; vms_vector pos = obj->pos;
PIGGY_PAGE_IN( bmi ); PIGGY_PAGE_IN( bmi );
// draw these with slight offset to viewer preventing too much ugly clipping // 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; 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); vm_vec_scale_add2(pos,offs_vec,F1_0);
} }
if (bm->bm_w > bm->bm_h) 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 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 //draw an object that is a texture-mapped rod

View file

@ -118,7 +118,7 @@ void do_powerup_frame(const vobjptridx_t obj)
void draw_powerup(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) static void _powerup_basic_nonhud(int redadd, int greenadd, int blueadd, int score)

View file

@ -60,7 +60,7 @@ void draw_vclip_object(const vobjptridx_t obj,fix timeleft,int lighted, int vcli
else { else {
Assert(lighted==0); //blob cannot now be lighted 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] );
} }
} }