1 /* Emacs style mode select -*- C++ -*- 2 *----------------------------------------------------------------------------- 3 * 4 * 5 * PrBoom: a Doom port merged with LxDoom and LSDLDoom 6 * based on BOOM, a modified and improved DOOM engine 7 * Copyright (C) 1999 by 8 * id Software, Chi Hoang, Lee Killough, Jim Flynn, Rand Phares, Ty Halderman 9 * Copyright (C) 1999-2000 by 10 * Jess Haas, Nicolas Kalkhof, Colin Phipps, Florian Schulze 11 * Copyright 2005, 2006 by 12 * Florian Schulze, Colin Phipps, Neil Stevens, Andrey Budko 13 * 14 * This program is free software; you can redistribute it and/or 15 * modify it under the terms of the GNU General Public License 16 * as published by the Free Software Foundation; either version 2 17 * of the License, or (at your option) any later version. 18 * 19 * This program is distributed in the hope that it will be useful, 20 * but WITHOUT ANY WARRANTY; without even the implied warranty of 21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 22 * GNU General Public License for more details. 23 * 24 * You should have received a copy of the GNU General Public License 25 * along with this program; if not, write to the Free Software 26 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 27 * 02111-1307, USA. 28 * 29 * DESCRIPTION: 30 * Event information structures. 31 * 32 *-----------------------------------------------------------------------------*/ 33 34 35 #ifndef __D_EVENT__ 36 #define __D_EVENT__ 37 38 39 #include "doomtype.h" 40 41 42 // 43 // Event handling. 44 // 45 46 // Input event types. 47 typedef enum 48 { 49 #ifdef __LIBRETRO__ 50 ev_none, 51 #endif 52 ev_keydown, 53 ev_keyup, 54 ev_mouse, 55 } evtype_t; 56 57 // Event structure. 58 typedef struct 59 { 60 evtype_t type; 61 int data1; // keys / mouse/joystick buttons 62 int data2; // mouse/joystick x move 63 int data3; // mouse/joystick y move 64 } event_t; 65 66 67 typedef enum 68 { 69 ga_nothing, 70 ga_loadlevel, 71 ga_newgame, 72 ga_loadgame, 73 ga_savegame, 74 ga_playdemo, 75 ga_completed, 76 ga_victory, 77 ga_worlddone, 78 } gameaction_t; 79 80 81 82 // 83 // Button/action code definitions. 84 // 85 typedef enum 86 { 87 // Press "Fire". 88 BT_ATTACK = 1, 89 90 // Use button, to open doors, activate switches. 91 BT_USE = 2, 92 93 // Flag: game events, not really buttons. 94 BT_SPECIAL = 128, 95 BT_SPECIALMASK = 3, 96 97 // Flag, weapon change pending. 98 // If true, the next 4 bits hold weapon num. 99 BT_CHANGE = 4, 100 101 // The 4bit weapon mask and shift, convenience. 102 //BT_WEAPONMASK = (8+16+32), 103 BT_WEAPONMASK = (8+16+32+64), // extended to pick up SSG // phares 104 BT_WEAPONSHIFT = 3, 105 106 // Special events 107 BTS_LOADGAME = 0, // Loads a game 108 // Pause the game. 109 BTS_PAUSE = 1, 110 // Save the game at each console. 111 BTS_SAVEGAME = 2, 112 BTS_RESTARTLEVEL= 3, // Restarts the current level 113 114 // Savegame slot numbers occupy the second byte of buttons. 115 BTS_SAVEMASK = (4+8+16), 116 BTS_SAVESHIFT = 2, 117 118 } buttoncode_t; 119 120 121 // 122 // GLOBAL VARIABLES 123 // 124 125 extern gameaction_t gameaction; 126 127 #endif 128