diff --git a/radiant/camwindow.cpp b/radiant/camwindow.cpp index fe04afd..b0a5742 100644 --- a/radiant/camwindow.cpp +++ b/radiant/camwindow.cpp @@ -1973,21 +1973,6 @@ void CamWnd_LookThroughCamera(CamWnd &camwnd) } } -void GlobalCamera_GoToZero(void) -{ - CamWnd &camwnd = *g_camwnd; - Vector3 zero; - zero[0] = 0; - zero[1] = 0; - zero[2] = 0; - Camera_setAngles(camwnd, zero); - Camera_setOrigin(camwnd, zero); - Camera_updateModelview(camwnd.getCamera()); - Camera_updateProjection(camwnd.getCamera()); - CamWnd_Update(camwnd); -} - - inline CameraModel *Instance_getCameraModel(scene::Instance &instance) { return InstanceTypeCast::cast(instance); @@ -2021,6 +2006,23 @@ void GlobalCamera_LookThroughCamera() CamWnd_LookThroughCamera(*g_camwnd); } +/* sets origin and angle to 0,0,0 coords */ +void XYZ_SetOrigin(const Vector3 &origin); +void GlobalCamera_GoToZero(void) +{ + CamWnd &camwnd = *g_camwnd; + Vector3 zero; + zero[0] = 0; + zero[1] = 0; + zero[2] = 0; + Camera_setAngles(camwnd, zero); + Camera_setOrigin(camwnd, zero); + Camera_updateModelview(camwnd.getCamera()); + Camera_updateProjection(camwnd.getCamera()); + CamWnd_Update(camwnd); + XYZ_SetOrigin(zero); +} + struct RenderMode { static void Export(const Callback &returnz) { diff --git a/radiant/mainframe.cpp b/radiant/mainframe.cpp index e9d33a9..77c1a52 100644 --- a/radiant/mainframe.cpp +++ b/radiant/mainframe.cpp @@ -2167,6 +2167,13 @@ void XY_UpdateAllWindows() } } +void XYZ_SetOrigin(const Vector3 &origin) +{ + g_pParentWnd->GetXYWnd()->SetOrigin(origin); + g_pParentWnd->GetXZWnd()->SetOrigin(origin); + g_pParentWnd->GetYZWnd()->SetOrigin(origin); +} + void UpdateAllWindows() { GlobalCamera_UpdateWindow(); diff --git a/radiant/map.cpp b/radiant/map.cpp index 33cda2a..6e8196b 100644 --- a/radiant/map.cpp +++ b/radiant/map.cpp @@ -538,6 +538,7 @@ void FocusViews(const Vector3 &point, float angle) #include "stringio.h" +void GlobalCamera_GoToZero(); void Map_StartPosition() { Entity *entity = Scene_FindPlayerStart(); @@ -547,7 +548,7 @@ void Map_StartPosition() string_parse_vector3(entity->getKeyValue("origin"), origin); FocusViews(origin, string_read_float(entity->getKeyValue("angle"))); } else { - FocusViews(g_vector3_identity, 0); + GlobalCamera_GoToZero(); } }