fix top-down orbit; WASD on keyboard; softer cursor
This commit is contained in:
1 parent
59c9fe33cc
commit
cac917989f
1 file changed
+88
-11
@@ -163,6 +163,10 @@ function RPGClient_EnsureCursor()
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (Canvas.isCursorOn())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
lockMouse(0);
|
lockMouse(0);
|
||||||
cursorOn();
|
cursorOn();
|
||||||
}
|
}
|
||||||
@@ -211,6 +215,42 @@ function RPGClient_StartCameraTick()
|
|||||||
$RPGClient::CamTickSched = schedule(32, 0, RPGClient_CameraTick);
|
$RPGClient::CamTickSched = schedule(32, 0, RPGClient_CameraTick);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function RPGClient_KeyMvForward(%val)
|
||||||
|
{
|
||||||
|
if (!$RPGClient::Active)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$RPGClient::MvF = %val * $RunMultiplier;
|
||||||
|
}
|
||||||
|
|
||||||
|
function RPGClient_KeyMvBackward(%val)
|
||||||
|
{
|
||||||
|
if (!$RPGClient::Active)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$RPGClient::MvB = %val * $RunMultiplier;
|
||||||
|
}
|
||||||
|
|
||||||
|
function RPGClient_KeyMvLeft(%val)
|
||||||
|
{
|
||||||
|
if (!$RPGClient::Active)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$RPGClient::MvL = %val * $RunMultiplier;
|
||||||
|
}
|
||||||
|
|
||||||
|
function RPGClient_KeyMvRight(%val)
|
||||||
|
{
|
||||||
|
if (!$RPGClient::Active)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$RPGClient::MvR = %val * $RunMultiplier;
|
||||||
|
}
|
||||||
|
|
||||||
function RPGClient_SendClickFromCursor(%button)
|
function RPGClient_SendClickFromCursor(%button)
|
||||||
{
|
{
|
||||||
if (!$RPGClient::Active || !isObject(Canvas))
|
if (!$RPGClient::Active || !isObject(Canvas))
|
||||||
@@ -244,10 +284,23 @@ function RPGClient_EnableOverlay()
|
|||||||
RPGClient_KeyMap.delete();
|
RPGClient_KeyMap.delete();
|
||||||
}
|
}
|
||||||
new ActionMap(RPGClient_KeyMap);
|
new ActionMap(RPGClient_KeyMap);
|
||||||
|
RPGClient_KeyMap.bind(keyboard, w, RPGClient_KeyMvForward);
|
||||||
|
RPGClient_KeyMap.bind(keyboard, s, RPGClient_KeyMvBackward);
|
||||||
|
RPGClient_KeyMap.bind(keyboard, a, RPGClient_KeyMvLeft);
|
||||||
|
RPGClient_KeyMap.bind(keyboard, d, RPGClient_KeyMvRight);
|
||||||
|
RPGClient_KeyMap.bind(keyboard0, w, RPGClient_KeyMvForward);
|
||||||
|
RPGClient_KeyMap.bind(keyboard0, s, RPGClient_KeyMvBackward);
|
||||||
|
RPGClient_KeyMap.bind(keyboard0, a, RPGClient_KeyMvLeft);
|
||||||
|
RPGClient_KeyMap.bind(keyboard0, d, RPGClient_KeyMvRight);
|
||||||
|
RPGClient_KeyMap.bind(keyboard, left, RPGClient_YawLeft);
|
||||||
|
RPGClient_KeyMap.bind(keyboard, right, RPGClient_YawRight);
|
||||||
RPGClient_KeyMap.bind(keyboard0, left, RPGClient_YawLeft);
|
RPGClient_KeyMap.bind(keyboard0, left, RPGClient_YawLeft);
|
||||||
RPGClient_KeyMap.bind(keyboard0, right, RPGClient_YawRight);
|
RPGClient_KeyMap.bind(keyboard0, right, RPGClient_YawRight);
|
||||||
|
RPGClient_KeyMap.bind(keyboard, equals, RPGClient_ZoomIn);
|
||||||
|
RPGClient_KeyMap.bind(keyboard, minus, RPGClient_ZoomOut);
|
||||||
RPGClient_KeyMap.bind(keyboard0, equals, RPGClient_ZoomIn);
|
RPGClient_KeyMap.bind(keyboard0, equals, RPGClient_ZoomIn);
|
||||||
RPGClient_KeyMap.bind(keyboard0, minus, RPGClient_ZoomOut);
|
RPGClient_KeyMap.bind(keyboard0, minus, RPGClient_ZoomOut);
|
||||||
|
RPGClient_KeyMap.bind(keyboard, m, RPGClient_ToggleCursor);
|
||||||
RPGClient_KeyMap.bind(keyboard0, m, RPGClient_ToggleCursor);
|
RPGClient_KeyMap.bind(keyboard0, m, RPGClient_ToggleCursor);
|
||||||
RPGClient_KeyMap.push();
|
RPGClient_KeyMap.push();
|
||||||
$mvFreeLook = 0;
|
$mvFreeLook = 0;
|
||||||
@@ -330,9 +383,11 @@ function RPGClient_ApplyCamera(%forceSync)
|
|||||||
$mvRightAction = 0;
|
$mvRightAction = 0;
|
||||||
%cam.unmountImage(0);
|
%cam.unmountImage(0);
|
||||||
%xfm = RPGClient_ViewTransform(%body, $RPGClient::Yaw, $RPGClient::Dist, $RPGClient::PanX, $RPGClient::PanY);
|
%xfm = RPGClient_ViewTransform(%body, $RPGClient::Yaw, $RPGClient::Dist, $RPGClient::PanX, $RPGClient::PanY);
|
||||||
%cam.setFlyMode();
|
|
||||||
%cam.setTransform(%xfm);
|
%cam.setTransform(%xfm);
|
||||||
%cam.mode = "Fly";
|
%cam.setMode("Corpse", %body);
|
||||||
|
%cam.setOrbitMode(%body, %xfm, 0, 32, $RPGClient::Dist);
|
||||||
|
%cam.mode = "Corpse";
|
||||||
|
%cam.thirdPersonOnly = 1;
|
||||||
%now = getSimTime();
|
%now = getSimTime();
|
||||||
if (%forceSync || %now - $RPGClient::LastCamSync > 120)
|
if (%forceSync || %now - $RPGClient::LastCamSync > 120)
|
||||||
{
|
{
|
||||||
@@ -718,15 +773,6 @@ activatePackage(RPGClient_MoveMap);
|
|||||||
|
|
||||||
package RPGClient_Cursor
|
package RPGClient_Cursor
|
||||||
{
|
{
|
||||||
function GuiCanvas::checkCursor(%this)
|
|
||||||
{
|
|
||||||
Parent::checkCursor(%this);
|
|
||||||
if ($RPGClient::Active)
|
|
||||||
{
|
|
||||||
RPGClient_EnsureCursor();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function escapeMenu::toggle(%this)
|
function escapeMenu::toggle(%this)
|
||||||
{
|
{
|
||||||
if (%this.isAwake())
|
if (%this.isAwake())
|
||||||
@@ -748,6 +794,37 @@ package RPGClient_Cursor
|
|||||||
};
|
};
|
||||||
activatePackage(RPGClient_Cursor);
|
activatePackage(RPGClient_Cursor);
|
||||||
|
|
||||||
|
package RPGClient_ViewLock
|
||||||
|
{
|
||||||
|
function toggleFirstPerson(%val)
|
||||||
|
{
|
||||||
|
if ($RPGClient::Active)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Parent::toggleFirstPerson(%val);
|
||||||
|
}
|
||||||
|
|
||||||
|
function toggleFreeLook(%val)
|
||||||
|
{
|
||||||
|
if ($RPGClient::Active)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Parent::toggleFreeLook(%val);
|
||||||
|
}
|
||||||
|
|
||||||
|
function dropCameraAtPlayer(%val)
|
||||||
|
{
|
||||||
|
if ($RPGClient::Active)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Parent::dropCameraAtPlayer(%val);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
activatePackage(RPGClient_ViewLock);
|
||||||
|
|
||||||
package RPGClient_Cleanup
|
package RPGClient_Cleanup
|
||||||
{
|
{
|
||||||
function disconnectedCleanup(%doReconnect)
|
function disconnectedCleanup(%doReconnect)
|
||||||
|
|||||||
Reference in new issue
Block a user