From dd260f234b01592feace9041cbcb319e6187a1be Mon Sep 17 00:00:00 2001 From: Kp Date: Sat, 9 Jul 2022 13:39:29 +0000 Subject: [PATCH] Use auto type for Viewer in more places --- similar/editor/eobject.cpp | 3 +-- similar/main/digiobj.cpp | 18 +++++++----------- similar/main/gamerend.cpp | 6 +++--- similar/main/gauges.cpp | 2 +- 4 files changed, 12 insertions(+), 17 deletions(-) diff --git a/similar/editor/eobject.cpp b/similar/editor/eobject.cpp index 9d03fbc10..8d6b239fa 100644 --- a/similar/editor/eobject.cpp +++ b/similar/editor/eobject.cpp @@ -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; diff --git a/similar/main/digiobj.cpp b/similar/main/digiobj.cpp index 029072f7c..6734d27ad 100644 --- a/similar/main/digiobj.cpp +++ b/similar/main/digiobj.cpp @@ -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) diff --git a/similar/main/gamerend.cpp b/similar/main/gamerend.cpp index 69b43c1d9..f20da6caa 100644 --- a/similar/main/gamerend.cpp +++ b/similar/main/gamerend.cpp @@ -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(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); } } diff --git a/similar/main/gauges.cpp b/similar/main/gauges.cpp index 7402a7762..28ed0fea3 100644 --- a/similar/main/gauges.cpp +++ b/similar/main/gauges.cpp @@ -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;