2002-11-16 08:07:38 +00:00
|
|
|
#ifndef INPUTQUEUE_H
|
|
|
|
|
#define INPUTQUEUE_H
|
2002-05-20 08:59:37 +00:00
|
|
|
/*
|
|
|
|
|
-----------------------------------------------------------------------------
|
|
|
|
|
Class: InputQueue
|
|
|
|
|
|
|
|
|
|
Desc: Stores a list of the most recently pressed MenuInputs for each player.
|
|
|
|
|
|
|
|
|
|
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
|
|
|
|
|
Chris Danford
|
|
|
|
|
-----------------------------------------------------------------------------
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#include "GameConstantsAndTypes.h"
|
2002-07-31 19:40:40 +00:00
|
|
|
#include "GameInput.h"
|
2002-07-31 22:37:58 +00:00
|
|
|
#include "MenuInput.h"
|
2002-05-20 08:59:37 +00:00
|
|
|
|
2004-01-26 03:36:02 +00:00
|
|
|
const unsigned MAX_INPUT_QUEUE_LENGTH = 16;
|
2002-05-20 08:59:37 +00:00
|
|
|
|
|
|
|
|
class InputQueue
|
|
|
|
|
{
|
|
|
|
|
public:
|
2002-07-27 19:29:51 +00:00
|
|
|
InputQueue();
|
2002-05-20 08:59:37 +00:00
|
|
|
|
2002-07-31 19:40:40 +00:00
|
|
|
void RememberInput( GameInput );
|
2003-12-02 09:04:00 +00:00
|
|
|
bool MatchesSequence( GameController c, const GameButton* button_sequence, int iNumButtons, float fMaxSecondsBack );
|
|
|
|
|
bool MatchesSequence( GameController c, const MenuButton* button_sequence, int iNumButtons, float fMaxSecondsBack );
|
|
|
|
|
bool AllWerePressedRecently( GameController c, const GameButton* buttons, int iNumButtons, float fMaxSecondsBack );
|
2002-05-20 08:59:37 +00:00
|
|
|
|
|
|
|
|
protected:
|
2002-07-31 19:40:40 +00:00
|
|
|
struct GameButtonAndTime
|
2002-05-20 08:59:37 +00:00
|
|
|
{
|
2002-07-31 19:40:40 +00:00
|
|
|
GameButtonAndTime() {}
|
|
|
|
|
GameButtonAndTime( GameButton b, float t ) { button = b; fTime = t; };
|
|
|
|
|
GameButton button;
|
2002-06-14 22:25:22 +00:00
|
|
|
float fTime;
|
2002-05-20 08:59:37 +00:00
|
|
|
};
|
2003-01-03 05:56:28 +00:00
|
|
|
vector<GameButtonAndTime> m_aQueue[MAX_GAME_CONTROLLERS];
|
2002-05-20 08:59:37 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
extern InputQueue* INPUTQUEUE; // global and accessable from anywhere in our program
|
2002-11-16 08:07:38 +00:00
|
|
|
|
|
|
|
|
#endif
|