LuaTest - pad.h

// Project      LuaTest
// Source       pad.h
// Date         08/03/18
// Author       yamahara
// Environment  Bcc++ & DXライブラリ & Lua
// Etc          Copyright(C) 2008 sansuido. All rights reserved.

#ifndef         PAD_DEF
#define         PAD_DEF

class Pad {
private:
        int             input_;
        int             inputPre_;
        
public:
        
        Pad() : input_(0), inputPre_(0) {}
        virtual ~Pad() {}
        
        virtual void    setInput(int input) { input_ = input; }
        virtual int     getInput() { return input_; }
        virtual void    setInputPre(int inputPre) { inputPre_ = inputPre; }
        virtual int     getInputOne() { return input_ & ~inputPre_; }
        
        virtual bool    isPress(int key) { return getInput() & key; }
        virtual bool    isPush(int key) { return getInputOne() & key; }
        
        // 原始的だけど……
        virtual bool    isPressA() { return isPress(PAD_INPUT_A); }
        virtual bool    isPushA() { return isPush(PAD_INPUT_A); }
        
        virtual bool    isPressB() { return isPress(PAD_INPUT_B); }
        virtual bool    isPushB() { return isPush(PAD_INPUT_B); }
        
        virtual bool    isPressUP() { return isPress(PAD_INPUT_UP); }
        virtual bool    isPushUP() { return isPush(PAD_INPUT_UP); }
        
        virtual bool    isPressDOWN() { return isPress(PAD_INPUT_DOWN); }
        virtual bool    isPushDOWN() { return isPush(PAD_INPUT_DOWN); }
        
        virtual bool    isPressLEFT() { return isPress(PAD_INPUT_LEFT); }
        virtual bool    isPushLEFT() { return isPush(PAD_INPUT_LEFT); }
        
        virtual bool    isPressRIGHT() { return isPress(PAD_INPUT_RIGHT); }
        virtual bool    isPushRIGHT() { return isPush(PAD_INPUT_RIGHT); }
};

#endif