diff options
author | Holger Zickner <[email protected]> | 2004-07-07 19:59:59 +0000 |
---|---|---|
committer | Holger Zickner <[email protected]> | 2004-07-07 19:59:59 +0000 |
commit | 6e23fc1074d1f0c2c2812f4c2e663f5a21a43c20 (patch) | |
tree | 46ecc6d0255c874ba4cd26dc3d0733f785019896 /src/jake2/sys/IN.java |
import of Jake2 version sunrisesunrise
Diffstat (limited to 'src/jake2/sys/IN.java')
-rw-r--r-- | src/jake2/sys/IN.java | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/src/jake2/sys/IN.java b/src/jake2/sys/IN.java new file mode 100644 index 0000000..db88226 --- /dev/null +++ b/src/jake2/sys/IN.java @@ -0,0 +1,122 @@ +/* + * IN.java + * Copyright (C) 2003 + * + * $Id: IN.java,v 1.1 2004-07-07 19:59:51 hzi Exp $ + */ +/* +Copyright (C) 1997-2001 Id Software, Inc. + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ +package jake2.sys; + +import jake2.Globals; +import jake2.game.usercmd_t; +import jake2.qcommon.Cvar; + +import java.awt.*; + +import javax.swing.ImageIcon; + +/** + * IN + */ +public final class IN extends Globals { + + static Component c = null; + static Cursor emptyCursor = null; + + static boolean mouse_avail = true; + static boolean mouse_active = false; + static boolean ignorefirst = false; + + public static void ActivateMouse() { + // if (!mouse_avail || c == null) return; + if (!mouse_active) { + KBD.mx = KBD.my = 0; // don't spazz + install_grabs(); + mouse_active = true; + } + } + + public static void DeactivateMouse() { + // if (!mouse_avail || c == null) return; + if (mouse_active) { + uninstall_grabs(); + mouse_active = false; + } + } + + private static void install_grabs() { + if (emptyCursor == null) { + ImageIcon emptyIcon = new ImageIcon(new byte[0]); + emptyCursor = c.getToolkit().createCustomCursor(emptyIcon.getImage(), new Point(0, 0), "emptyCursor"); + } + c.setCursor(emptyCursor); + KBD.centerMouse(); + + ignorefirst = true; + } + + private static void uninstall_grabs() { + c.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); + } + + public static void toggleMouse() { + if (mouse_active) + DeactivateMouse(); + else + ActivateMouse(); + } + + public static void Init() { + in_mouse = Cvar.Get("in_mouse", "1", CVAR_ARCHIVE); + in_joystick = Cvar.Get("in_joystick", "0", CVAR_ARCHIVE); + } + + public static void Shutdown() { + RW.IN_Shutdown(); + } + + public static void Real_IN_Init() { + RW.IN_Init(); + } + + public static void Commands() { + RW.IN_Commands(); + } + + public static void Frame() { + + if ( !cl.refresh_prepped || cls.key_dest == key_console || cls.key_dest == key_menu) + RW.IN_Activate(false); + else + RW.IN_Activate(true); + + RW.IN_Frame(); + } + + public static void CenterView() { + cl.viewangles[PITCH] = -SHORT2ANGLE(cl.frame.playerstate.pmove.delta_angles[PITCH]); + } + + public static void Move(usercmd_t cmd) { + RW.IN_Move(cmd); + } + +} |