mirror of
https://github.com/ZDoom/zduke.git
synced 2025-04-21 04:50:45 +00:00
99 lines
2 KiB
C
99 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
|