mirror of
https://github.com/ZDoom/zduke.git
synced 2025-04-20 20:40:44 +00:00
98 lines
2 KiB
C++
98 lines
2 KiB
C++
// 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_H__
|
|
#define __D_EVENT_H__
|
|
|
|
|
|
#include "doomtype.h"
|
|
|
|
|
|
//
|
|
// Event handling.
|
|
//
|
|
|
|
// Input event types.
|
|
enum EGenericEvent
|
|
{
|
|
EV_None,
|
|
EV_KeyDown, // data1: scan code, data2: Qwerty ASCII code, data3: modifiers
|
|
EV_KeyUp, // same
|
|
EV_Mouse, // x, y: mouse movement deltas
|
|
EV_GUI_Event // subtype specifies actual event
|
|
};
|
|
|
|
// Event structure.
|
|
struct event_t
|
|
{
|
|
BYTE type;
|
|
BYTE subtype;
|
|
SWORD data1; // keys / mouse/joystick buttons
|
|
SWORD data2;
|
|
SWORD data3;
|
|
int x; // mouse/joystick x move
|
|
int y; // mouse/joystick y move
|
|
};
|
|
|
|
|
|
typedef enum
|
|
{
|
|
ga_nothing,
|
|
ga_loadlevel,
|
|
ga_newgame,
|
|
ga_newgame2,
|
|
ga_loadgame,
|
|
ga_savegame,
|
|
ga_autosave,
|
|
ga_playdemo,
|
|
ga_completed,
|
|
ga_victory,
|
|
ga_worlddone,
|
|
ga_screenshot,
|
|
ga_fullconsole
|
|
} gameaction_t;
|
|
|
|
|
|
void D_PostEvent (const event_t *ev);
|
|
void D_ProcessEvents ();
|
|
void D_AddResponder (bool (*responder)(const event_t *ev), int priority);
|
|
void D_RemoveResponder (bool (*responder)(const event_t *ev));
|
|
|
|
//
|
|
// GLOBAL VARIABLES
|
|
//
|
|
#define MAXEVENTS 128
|
|
|
|
extern event_t events[MAXEVENTS];
|
|
extern int eventhead;
|
|
extern int eventtail;
|
|
|
|
extern gameaction_t gameaction;
|
|
|
|
#define MAX_RESPONDERS 20
|
|
|
|
typedef bool (*responder_p)(const event_t *);
|
|
|
|
extern responder_p Responders[MAX_RESPONDERS];
|
|
extern int ResponderPriorities[MAX_RESPONDERS];
|
|
|
|
#endif
|