Use auto type for Viewer in more places

This commit is contained in:
Kp 2022-07-09 13:39:29 +00:00
parent a70188e7a5
commit dd260f234b
4 changed files with 12 additions and 17 deletions

View file

@ -748,10 +748,9 @@ static void move_object_to_position(const vmobjptridx_t objp, const vms_vector &
objp->pos = newpos;
} else {
if (verify_object_seg(vmobjptr, Segments, vcvertptr, objp, newpos)) {
object temp_viewer_obj;
fvi_info hit_info;
temp_viewer_obj = *Viewer;
auto temp_viewer_obj = *Viewer;
auto viewer_segnum = find_object_seg(LevelSharedSegmentState, LevelUniqueSegmentState, *Viewer);
temp_viewer_obj.segnum = viewer_segnum;

View file

@ -430,9 +430,7 @@ static void digi_link_sound_common(const object_base &viewer, sound_object &so,
void digi_link_sound_to_object3(const unsigned org_soundnum, const vcobjptridx_t objnum, const uint8_t forever, const fix max_volume, const sound_stack once, const vm_distance max_distance, const int loop_start, const int loop_end)
{
auto &Objects = LevelUniqueObjectState.Objects;
auto &vcobjptr = Objects.vcptr;
const auto &&viewer = vcobjptr(Viewer);
auto &viewer = *Viewer;
int soundnum;
soundnum = digi_xlat_sound(org_soundnum);
@ -451,7 +449,7 @@ void digi_link_sound_to_object3(const unsigned org_soundnum, const vcobjptridx_t
if ( Newdemo_state == ND_STATE_RECORDING ) {
if ( !forever ) { // forever flag is not recorded, use original limited sound objects hack for demo recording
auto segnum = vcsegptridx(objnum->segnum);
const auto &&[volume, pan] = digi_get_sound_loc(viewer->orient, viewer->pos, segnum.absolute_sibling(viewer->segnum),
const auto &&[volume, pan] = digi_get_sound_loc(viewer.orient, viewer.pos, segnum.absolute_sibling(viewer.segnum),
objnum->pos, segnum, max_volume,
max_distance);
newdemo_record_sound_3d_once( org_soundnum, pan, volume );
@ -483,9 +481,9 @@ void digi_link_sound_to_object(const unsigned soundnum, const vcobjptridx_t objn
namespace {
static void digi_link_sound_to_pos2(fvcobjptr &vcobjptr, const int org_soundnum, const vcsegptridx_t segnum, const sidenum_t sidenum, const vms_vector &pos, int forever, fix max_volume, const vm_distance max_distance)
static void digi_link_sound_to_pos2(const int org_soundnum, const vcsegptridx_t segnum, const sidenum_t sidenum, const vms_vector &pos, int forever, fix max_volume, const vm_distance max_distance)
{
const auto &&viewer = vcobjptr(Viewer);
auto &viewer = *Viewer;
int soundnum;
soundnum = digi_xlat_sound(org_soundnum);
@ -503,7 +501,7 @@ static void digi_link_sound_to_pos2(fvcobjptr &vcobjptr, const int org_soundnum,
if (!forever)
{
// Hack to keep sounds from building up...
const auto &&[volume, pan] = digi_get_sound_loc(viewer->orient, viewer->pos, segnum.absolute_sibling(viewer->segnum), pos, segnum, max_volume, max_distance);
const auto &&[volume, pan] = digi_get_sound_loc(viewer.orient, viewer.pos, segnum.absolute_sibling(viewer.segnum), pos, segnum, max_volume, max_distance);
digi_play_sample_3d(org_soundnum, pan, volume);
return;
}
@ -524,9 +522,7 @@ static void digi_link_sound_to_pos2(fvcobjptr &vcobjptr, const int org_soundnum,
void digi_link_sound_to_pos(const unsigned soundnum, const vcsegptridx_t segnum, const sidenum_t sidenum, const vms_vector &pos, const int forever, const fix max_volume)
{
auto &Objects = LevelUniqueObjectState.Objects;
auto &vcobjptr = Objects.vcptr;
digi_link_sound_to_pos2(vcobjptr, soundnum, segnum, sidenum, pos, forever, max_volume, vm_distance{F1_0 * 256});
digi_link_sound_to_pos2(soundnum, segnum, sidenum, pos, forever, max_volume, vm_distance{F1_0 * 256});
}
//if soundnum==-1, kill any sound
@ -596,7 +592,7 @@ void digi_sync_sounds()
return;
auto &Objects = LevelUniqueObjectState.Objects;
auto &vcobjptr = Objects.vcptr;
const auto &&viewer = vcobjptr(Viewer);
const auto viewer = Viewer;
range_for (auto &s, SoundObjects)
{
if (s.flags & SOF_USED)

View file

@ -343,7 +343,7 @@ static void draw_window_label(object_array &Objects, grs_canvas &canvas)
case OBJ_FIREBALL: viewer_name = "Fireball"; break;
case OBJ_ROBOT: viewer_name = "Robot";
#if DXX_USE_EDITOR
viewer_id = Robot_names[get_robot_id(Objects.vcptr(Viewer))].data();
viewer_id = Robot_names[get_robot_id(*Viewer)].data();
#endif
break;
case OBJ_HOSTAGE: viewer_name = "Hostage"; break;
@ -352,7 +352,7 @@ static void draw_window_label(object_array &Objects, grs_canvas &canvas)
case OBJ_CAMERA: viewer_name = "Camera"; break;
case OBJ_POWERUP: viewer_name = "Powerup";
#if DXX_USE_EDITOR
viewer_id = Powerup_names[get_powerup_id(Objects.vcptr(Viewer))].data();
viewer_id = Powerup_names[get_powerup_id(*Viewer)].data();
#endif
break;
case OBJ_DEBRIS: viewer_name = "Debris"; break;
@ -372,7 +372,7 @@ static void draw_window_label(object_array &Objects, grs_canvas &canvas)
gr_set_fontcolor(canvas, BM_XRGB(31, 0, 0),-1);
auto &game_font = *GAME_FONT;
gr_printf(canvas, game_font, 0x8000, (SHEIGHT / 10), "%hu: %s [%s] View - %s", static_cast<objnum_t>(vcobjptridx(Viewer)), viewer_name, viewer_id, control_name);
gr_printf(canvas, game_font, 0x8000, (SHEIGHT / 10), "%hu: %s [%s] View - %s", vcobjptridx(Viewer).get_unchecked_index(), viewer_name, viewer_id, control_name);
}
}

View file

@ -3664,7 +3664,7 @@ void draw_hud(const d_robot_info_array &Robot_info, grs_canvas &canvas, const ob
return;
// Cruise speed
if (Viewer->type == OBJ_PLAYER && get_player_id(vcobjptr(Viewer)) == Player_num && PlayerCfg.CockpitMode[1] != cockpit_mode_t::rear_view)
if (auto &viewer = *Viewer; viewer.type == OBJ_PLAYER && get_player_id(viewer) == Player_num && PlayerCfg.CockpitMode[1] != cockpit_mode_t::rear_view)
{
int x = FSPACX(1);
int y = canvas.cv_bitmap.bm_h;