Pass check_effect_blowup vms_vector arg by &

This commit is contained in:
Kp 2014-10-26 21:36:35 +00:00
parent fdfd849bd2
commit 9a32e151ff
9 changed files with 25 additions and 26 deletions

View file

@ -50,7 +50,7 @@ void collide_player_and_nasty_robot(vobjptridx_t player, vobjptridx_t robot, vms
void net_destroy_controlcen(objptridx_t controlcen);
void collide_player_and_powerup(object *player, vobjptridx_t powerup, vms_vector *collision_point);
extern int check_effect_blowup(segment *seg,int side,vms_vector *pnt, object *blower, int force_blowup_flag, int remote);
int check_effect_blowup(segment *seg,int side,const vms_vector &pnt, object *blower, int force_blowup_flag, int remote);
void apply_damage_to_controlcen(vobjptridx_t controlcen, fix damage, objnum_t who);
extern void bump_one_object(object *obj0, vms_vector *hit_dir, fix damage);
void drop_player_eggs(vobjptridx_t playerobj);

View file

@ -88,7 +88,7 @@ int find_vector_intersection(fvi_query *fq,fvi_info *hit_data);
//finds the uv coords of the given point on the given seg & side
//fills in u & v. if l is non-NULL fills it in also
void find_hitpoint_uv(fix *u,fix *v, const vms_vector *pnt,const segment *seg,int sidenum,int facenum);
void find_hitpoint_uv(fix *u,fix *v, const vms_vector &pnt,const segment *seg,int sidenum,int facenum);
//Returns true if the object is through any walls
int object_intersects_wall(object *objp);

View file

@ -257,7 +257,7 @@ void multi_send_markers();
void multi_send_guided_info (object *miss,char);
void multi_send_orb_bonus(playernum_t pnum);
void multi_send_got_orb(playernum_t pnum);
void multi_send_effect_blowup(segnum_t segnum, int side, vms_vector *pnt);
void multi_send_effect_blowup(segnum_t segnum, int side, const vms_vector &pnt);
#endif
void multi_add_lifetime_kills(void);
void multi_send_bounty( void );

View file

@ -96,7 +96,7 @@ extern void newdemo_record_player_energy(int);
extern void newdemo_record_player_shields(int);
extern void newdemo_record_player_flags(uint);
extern void newdemo_record_player_weapon(int, int);
extern void newdemo_record_effect_blowup(short, int, vms_vector *);
void newdemo_record_effect_blowup(segnum_t, int, const vms_vector &);
extern void newdemo_record_homing_distance(fix);
extern void newdemo_record_letterbox(void);
extern void newdemo_record_rearview(void);

View file

@ -534,7 +534,7 @@ static int effect_parent_is_guidebot(const object *effect)
//if an effect is hit, and it can blow up, then blow it up
//returns true if it blew up
int check_effect_blowup(segment *seg,int side,vms_vector *pnt, object *blower, int force_blowup_flag, int remote)
int check_effect_blowup(segment *seg,int side,const vms_vector &pnt, object *blower, int force_blowup_flag, int remote)
{
int tm,db;
@ -632,7 +632,7 @@ int check_effect_blowup(segment *seg,int side,vms_vector *pnt, object *blower, i
vc = 3;
}
object_create_explosion( seg-Segments, *pnt, dest_size, vc );
object_create_explosion( seg-Segments, pnt, dest_size, vc );
#if defined(DXX_BUILD_DESCENT_II)
if (ec!=-1 && db!=-1 && !(Effects[ec].flags&EF_ONE_SHOT))
@ -640,7 +640,7 @@ int check_effect_blowup(segment *seg,int side,vms_vector *pnt, object *blower, i
{
if ((sound_num = Vclip[vc].sound_num) != -1)
digi_link_sound_to_pos( sound_num, seg-Segments, 0, *pnt, 0, F1_0 );
digi_link_sound_to_pos( sound_num, seg-Segments, 0, pnt, 0, F1_0 );
if ((sound_num=Effects[ec].sound_num)!=-1) //kill sound
digi_kill_sound_linked_to_segment(seg-Segments,side,sound_num);
@ -673,7 +673,7 @@ int check_effect_blowup(segment *seg,int side,vms_vector *pnt, object *blower, i
seg->sides[side].tmap_num2 = TmapInfo[tm].destroyed | tmf;
//assume this is a light, and play light sound
digi_link_sound_to_pos( SOUND_LIGHT_BLOWNUP, seg-Segments, 0, *pnt, 0, F1_0 );
digi_link_sound_to_pos( SOUND_LIGHT_BLOWNUP, seg-Segments, 0, pnt, 0, F1_0 );
}
#endif
@ -753,7 +753,7 @@ static void collide_weapon_and_wall(vobjptridx_t weapon, fix hitspeed, segnum_t
return;
}
blew_up = check_effect_blowup(seg,hitwall,hitpt, weapon, 0, 0);
blew_up = check_effect_blowup(seg,hitwall,*hitpt, weapon, 0, 0);
//if ((seg->sides[hitwall].tmap_num2==0) && (TmapInfo[seg->sides[hitwall].tmap_num].flags & TMI_VOLATILE)) {

View file

@ -782,7 +782,7 @@ static int obj_in_list(objnum_t objnum,const objnum_t *obj_list)
}
static int check_trans_wall(vms_vector *pnt,segment *seg,int sidenum,int facenum);
static int check_trans_wall(const vms_vector &pnt,segment *seg,int sidenum,int facenum);
static void append_segments(fvi_info::segment_array_t &dst, const fvi_info::segment_array_t &src)
{
@ -937,7 +937,7 @@ static int fvi_sub(vms_vector *intp,segnum_t *ints,const vms_vector *p0,segnum_t
#elif defined(DXX_BUILD_DESCENT_II)
((wid_flag & WID_RENDER_FLAG) && (wid_flag & WID_RENDPAST_FLAG)) &&
#endif
((flags & FQ_TRANSWALL) || (flags & FQ_TRANSPOINT && check_trans_wall(&hit_point,seg,side,face))))) {
((flags & FQ_TRANSWALL) || (flags & FQ_TRANSPOINT && check_trans_wall(hit_point,seg,side,face))))) {
segnum_t newsegnum,sub_hit_seg;
vms_vector sub_hit_point;
@ -1097,7 +1097,7 @@ quit_looking:
//finds the uv coords of the given point on the given seg & side
//fills in u & v. if l is non-NULL fills it in also
void find_hitpoint_uv(fix *u,fix *v,const vms_vector *pnt,const segment *seg,int sidenum,int facenum)
void find_hitpoint_uv(fix *u,fix *v,const vms_vector &pnt,const segment *seg,int sidenum,int facenum)
{
int num_faces;
const side *side = &seg->sides[sidenum];
@ -1144,7 +1144,7 @@ void find_hitpoint_uv(fix *u,fix *v,const vms_vector *pnt,const segment *seg,int
const vec2d vec1{vf2.*ii - p1.i, vf2.*jj - p1.j};
//vec from 1 -> checkpoint
const vec2d checkp{pnt->*ii, pnt->*jj};
const vec2d checkp{pnt.*ii, pnt.*jj};
//@@checkv.i = checkp.i - p1.i;
//@@checkv.j = checkp.j - p1.j;
@ -1171,7 +1171,7 @@ void find_hitpoint_uv(fix *u,fix *v,const vms_vector *pnt,const segment *seg,int
//check if a particular point on a wall is a transparent pixel
//returns 1 if can pass though the wall, else 0
int check_trans_wall(vms_vector *pnt,segment *seg,int sidenum,int facenum)
int check_trans_wall(const vms_vector &pnt,segment *seg,int sidenum,int facenum)
{
grs_bitmap *bm;
side *side = &seg->sides[sidenum];

View file

@ -2204,7 +2204,7 @@ static void multi_do_effect_blowup(const playernum_t pnum, const ubyte *buf)
dummy.ctype.laser_info.parent_type = OBJ_PLAYER;
dummy.ctype.laser_info.parent_num = pnum;
check_effect_blowup(&(Segments[segnum]), side, &hitpnt, &dummy, 0, 1);
check_effect_blowup(&(Segments[segnum]), side, hitpnt, &dummy, 0, 1);
}
static void multi_do_drop_marker (const playernum_t pnum, const ubyte *buf)
@ -3149,8 +3149,7 @@ multi_send_trigger(int triggernum)
}
#if defined(DXX_BUILD_DESCENT_II)
void
multi_send_effect_blowup(segnum_t segnum, int side, vms_vector *pnt)
void multi_send_effect_blowup(segnum_t segnum, int side, const vms_vector &pnt)
{
// We blew up something connected to a trigger. Send this blowup result to other players shortly before MULTI_TRIGGER.
// NOTE: The reason this is now a separate packet is to make sure trigger-connected switches/monitors are in sync with MULTI_TRIGGER.
@ -3164,9 +3163,9 @@ multi_send_effect_blowup(segnum_t segnum, int side, vms_vector *pnt)
multibuf[count] = Player_num; count += 1;
PUT_INTEL_SHORT(multibuf+count, segnum); count += 2;
multibuf[count] = (sbyte)side; count += 1;
PUT_INTEL_INT(multibuf+count, pnt->x); count += 4;
PUT_INTEL_INT(multibuf+count, pnt->y); count += 4;
PUT_INTEL_INT(multibuf+count, pnt->z); count += 4;
PUT_INTEL_INT(multibuf+count, pnt.x); count += 4;
PUT_INTEL_INT(multibuf+count, pnt.y); count += 4;
PUT_INTEL_INT(multibuf+count, pnt.z); count += 4;
multi_send_data<MULTI_EFFECT_BLOWUP>(multibuf, count, 0);
}

View file

@ -373,7 +373,7 @@ static void nd_write_fixang(fixang f)
newdemo_write(&f, sizeof(fixang), 1);
}
static void nd_write_vector(vms_vector *v)
static void nd_write_vector(const vms_vector *v)
{
nd_write_fix(v->x);
nd_write_fix(v->y);
@ -1306,13 +1306,13 @@ void newdemo_record_player_weapon(int weapon_type, int weapon_num)
start_time();
}
void newdemo_record_effect_blowup(short segment, int side, vms_vector *pnt)
void newdemo_record_effect_blowup(short segment, int side, const vms_vector &pnt)
{
stop_time();
nd_write_byte (ND_EVENT_EFFECT_BLOWUP);
nd_write_short(segment);
nd_write_byte((sbyte)side);
nd_write_vector(pnt);
nd_write_vector(&pnt);
start_time();
}
@ -2525,9 +2525,9 @@ static int newdemo_read_frame_information(int rewrite)
}
if (Newdemo_vcr_state != ND_STATE_PAUSED)
#if defined(DXX_BUILD_DESCENT_I)
check_effect_blowup(&(Segments[segnum]), side, &pnt, NULL, 0, 0);
check_effect_blowup(&(Segments[segnum]), side, pnt, NULL, 0, 0);
#elif defined(DXX_BUILD_DESCENT_II)
check_effect_blowup(&(Segments[segnum]), side, &pnt, &dummy, 0, 0);
check_effect_blowup(&(Segments[segnum]), side, pnt, &dummy, 0, 0);
#endif
break;
}

View file

@ -1669,7 +1669,7 @@ static void bng_process_segment(object *objp, fix damage, segment *segp, int dep
if (dist < damage/2) {
dist = find_connected_distance(pnt, segp-Segments, objp->pos, objp->segnum, MAX_BLAST_GLASS_DEPTH, WID_RENDPAST_FLAG);
if ((dist > 0) && (dist < damage/2))
check_effect_blowup(segp, sidenum, &pnt, &Objects[objp->ctype.laser_info.parent_num], 1, 0);
check_effect_blowup(segp, sidenum, pnt, &Objects[objp->ctype.laser_info.parent_num], 1, 0);
}
}
}