# Free-roam multiplayer, a friend's wheels after the game's physics moved
# them (instance B, renders): new career -> prologue free roam; A
# (roam_mp_ram_a.txt) drives ahead and stands; B jumps behind A's car and
# writes into it what a moment of the game's physics can leave there, the
# suspension offsets (car +0x380): NaN, which made the tires vanish for good,
# then 0.8 m, which floats the wheels over the car.  Each time the log says
# "had its wheels moved ... put back", +0x380 reads ours again two frames
# later (A's wheel heights less the ride's, a few cm; 0 from an older game),
# the wheel's place (+0x160) is the ride's, and the dumps show the wheels.
#   node web/tools/roam-pair.mjs --page play --play-only Bo --size 1280x720
#        --a Al:roam_mp_ram_a.txt --b Bo:roam_mp_tires.txt --watch 4000
0     tapuntil RETURN MC_Background.fng 120 4000
+120  tap LEFT
+30   tap RETURN
+240  tap BACK
+8    tap BACK
+8    tap BACK
+8    tap BACK
+20   type ${ROAM_PROFILE}
+60   tap RETURN
+240  tap RETURN
+0    waitfng GarageMain.fng 3000
+300  tap LEFT
+60   tap RETURN                      # Career
+300  tap RETURN                      # Start New Career
+0    waitfng UI_EngageMessageDialog.fng 8000
+120  tap RETURN                      # SMS: Continue
+0    roam waitroam 3000
+0    roam smsauto on
+0    roam mp waitpeers 1 6000
+0    roam mp waitcars 1 3000
+0    roam mp waitsolid 1 6000
+400  roam mp follow 0 7 2.5
+120  roam mp carpeek 0 380 4
+0    roam mp carpeek 0 160 3
+0    dump tires_0
+0    log nan
+0    roam mp carpoke 0 380 nan 4
+2    roam mp carpeek 0 380 4
+0    roam mp carpeek 0 160 3
+0    dump tires_1
+60   log float
+0    roam mp carpoke 0 380 0.8 4
+2    roam mp carpeek 0 380 4
+0    roam mp carpeek 0 160 3
+0    dump tires_2
+60   roam mp status
+10   quit
