All pastes #535222 Raw Edit

Wut

public cpp v1 · immutable
·published 2007-06-04 01:12 UTC
rendered paste body
#ifndef INPUT_MANAGER_H#define INPUT_MANAGER_H#include <vector>#include <windows.h>typedef void ( *KeyHandler ) ( void );typedef void ( *MouseHandler ) ( int x, int y );class InputManager{	std::vector< int > m_pollKeys;	std::vector< KeyHandler > m_downHandlers;	std::vector< KeyHandler > m_upHandlers;	std::vector< KeyHandler > m_pressedHandlers;	MouseHandler m_mouseHandler;	// Polls a vector of keys, removes depressed keys from the vector.	void PollKeys( );public:	InputManager( );	// Is called by the Windows message handler routine, adds pressed	// keys to the vector.	void HandleInput( WPARAM wParam );	void InstallKeyDown( int vk, KeyHandler handler );	void InstallKeyUp( int vk, KeyHandler handler );	void InstallKeyPressed( KeyHandler handler );	void InstallMouseHandler( MouseHandler handler );	// Used to remove remove the associated handler from the vector.	void UninstallKeyDown( int vk );	void UninstallKeyUp( int vk );	void UninstallKeyPressed( int vk );	void UninstallMouseHandler( );};#endif// ------------------------#include "InputManager.h"void InputManager::HandleInput( WPARAM wParam ){	if ( m_downHandlers[wParam] != NULL )	{		// Call the key-down handler.		m_handlers[wParam]( );		// Set up the pressed key for polling.		m_pollKeys			}}void InputManager::PollKeys( ){	// Poll all pressed keys.}InputManager::InputManager( ){	for ( int i=0; i<0xFF; i++ )	{		m_downHandlers.push_back( NULL );		m_upHandlers.push_back( NULL );		m_pressedHandlers.push_back( NULL );	}}void InputManager::InstallKeyDown( int vk, KeyHandler handler ){	m_downHandlers[vk] = handler;}void InputManager::InstallKeyUp( int vk, KeyHandler handler ){	m_upHandlers[vk] = handler;}void InputManager::InstallKeyPressed( int vk, KeyHandler handler ){	m_pressedHandlers[vk] = handler;}void InputManager::UninstallKeyDown( int vk ){	m_downHandlers[vk] = NULL;}void InputManager::UninstallKeyUp( int vk ){	m_upHandlers[vk] = NULL;}void InputManager::UninstallKeyPressed( int vk ){	m_pressedHandlers[vk] = NULL;}