| 1366 | } |
| 1367 | |
| 1368 | void CTerrainDialog::MoveSat(int pitch, int heading) { |
| 1369 | int n = Current_satellite; |
| 1370 | matrix rot_matrix, orient; |
| 1371 | vm_AnglesToMatrix(&rot_matrix, pitch, heading, 0); // move up a little |
| 1372 | |
| 1373 | orient = rot_matrix; |
| 1374 | |
| 1375 | vector sat_vec = Terrain_sky.satellite_vectors[n] - Viewer_object->pos; |
| 1376 | float mag = vm_GetMagnitude(&sat_vec); |
| 1377 | vector rot_vec; |
| 1378 | |
| 1379 | vm_NormalizeVector(&sat_vec); |
| 1380 | vm_MatrixMulVector(&rot_vec, &sat_vec, &orient); |
| 1381 | |
| 1382 | Terrain_sky.satellite_vectors[n] = Viewer_object->pos + (rot_vec * mag); |
| 1383 | } |
| 1384 | |
| 1385 | void CTerrainDialog::OnMoveSatUp() { |
| 1386 | MoveSat(1500, 0); |
nothing calls this directly
no test coverage detected