diff options
author | inmarket <andrewh@inmarket.com.au> | 2013-12-24 01:00:14 +1000 |
---|---|---|
committer | inmarket <andrewh@inmarket.com.au> | 2013-12-24 01:00:14 +1000 |
commit | 39adfff2a9f73919dd09593efc38884dc2a05f40 (patch) | |
tree | f0fdf8c70ce4a1396e33927f9033049de370c56a /demos/3rdparty/doom/d_event.h | |
parent | 57d9c4854beefd22aa367f6a44b5da4a586632b1 (diff) | |
download | uGFX-39adfff2a9f73919dd09593efc38884dc2a05f40.tar.gz uGFX-39adfff2a9f73919dd09593efc38884dc2a05f40.tar.bz2 uGFX-39adfff2a9f73919dd09593efc38884dc2a05f40.zip |
demo - DOOM the game.
Runs but not quite functional yet (requires user input to be completed).
Shareware WAD file. Please read README.txt and DOOMLIC.txt
Diffstat (limited to 'demos/3rdparty/doom/d_event.h')
-rw-r--r-- | demos/3rdparty/doom/d_event.h | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/demos/3rdparty/doom/d_event.h b/demos/3rdparty/doom/d_event.h new file mode 100644 index 00000000..feb57833 --- /dev/null +++ b/demos/3rdparty/doom/d_event.h @@ -0,0 +1,122 @@ +// Emacs style mode select -*- C++ -*- +//----------------------------------------------------------------------------- +// +// $Id:$ +// +// Copyright (C) 1993-1996 by id Software, Inc. +// +// This source is available for distribution and/or modification +// only under the terms of the DOOM Source Code License as +// published by id Software. All rights reserved. +// +// The source is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License +// for more details. +// +// DESCRIPTION: +// +// +//----------------------------------------------------------------------------- + + +#ifndef __D_EVENT__ +#define __D_EVENT__ + + +#include "doomtype.h" + + +// +// Event handling. +// + +// Input event types. +typedef enum +{ + ev_keydown, + ev_keyup, + ev_mouse, + ev_joystick +} evtype_t; + +// Event structure. +typedef struct +{ + evtype_t type; + int data1; // keys / mouse/joystick buttons + int data2; // mouse/joystick x move + int data3; // mouse/joystick y move +} event_t; + + +typedef enum +{ + ga_nothing, + ga_loadlevel, + ga_newgame, + ga_loadgame, + ga_savegame, + ga_playdemo, + ga_completed, + ga_victory, + ga_worlddone, + ga_screenshot +} gameaction_t; + + + +// +// Button/action code definitions. +// +typedef enum +{ + // Press "Fire". + BT_ATTACK = 1, + // Use button, to open doors, activate switches. + BT_USE = 2, + + // Flag: game events, not really buttons. + BT_SPECIAL = 128, + BT_SPECIALMASK = 3, + + // Flag, weapon change pending. + // If true, the next 3 bits hold weapon num. + BT_CHANGE = 4, + // The 3bit weapon mask and shift, convenience. + BT_WEAPONMASK = (8+16+32), + BT_WEAPONSHIFT = 3, + + // Pause the game. + BTS_PAUSE = 1, + // Save the game at each console. + BTS_SAVEGAME = 2, + + // Savegame slot numbers + // occupy the second byte of buttons. + BTS_SAVEMASK = (4+8+16), + BTS_SAVESHIFT = 2, + +} buttoncode_t; + + + + +// +// GLOBAL VARIABLES +// +#define MAXEVENTS 64 + +extern event_t events[MAXEVENTS]; +extern int eventhead; +extern int eventtail; + +extern gameaction_t gameaction; + + +#endif +//----------------------------------------------------------------------------- +// +// $Log:$ +// +//----------------------------------------------------------------------------- |