mirror of
https://github.com/devZoGok/PlanetFleet.git
synced 2026-08-26 19:43:29 +00:00
removed many Irrlicht references
This commit is contained in:
+108
-91
@@ -1,109 +1,126 @@
|
||||
#include <cmath>
|
||||
|
||||
#include "eventListener.h"
|
||||
#include "stateManager.h"
|
||||
|
||||
using namespace irr;
|
||||
using namespace std;
|
||||
|
||||
namespace game{
|
||||
namespace core{
|
||||
EventListener::EventListener(GameManager* gM) {
|
||||
gameManager = gM;
|
||||
}
|
||||
double *posX,*posY,strX,strY;
|
||||
int width,height;
|
||||
|
||||
void foo(GLFWwindow *window,double newPosX,double newPosY){
|
||||
strX=(*posX-newPosX)/width,strY=(newPosY-*posY)/height;
|
||||
}
|
||||
|
||||
EventListener::~EventListener() {}
|
||||
InputManager::InputManager(GLFWwindow *window){
|
||||
this->stateManager = GameManager::getSingleton()->getStateManager();
|
||||
this->window = window;
|
||||
posX = new double, posY = new double;
|
||||
}
|
||||
|
||||
bool EventListener::OnEvent(const SEvent& event) {
|
||||
int offsetTrigger = -1;
|
||||
StateManager *stateManager = GameManager::getSingleton()->getStateManager();
|
||||
InputManager::~InputManager(){}
|
||||
|
||||
if (event.EventType == EET_KEY_INPUT_EVENT) {
|
||||
for (int i = 0; i < stateManager->getAppStateNumber(); i++) {
|
||||
for (Key *k : stateManager->getAppState(i)->getKeys()) {
|
||||
if (k->key && k->trigger == event.KeyInput.Key) {
|
||||
if (!k->analog) {
|
||||
if (!event.KeyInput.PressedDown)
|
||||
k->beingUsed=false;
|
||||
void InputManager::update(){
|
||||
GameManager *gm = GameManager::getSingleton();
|
||||
width = gm->getWidth(), height = gm->getHeight();
|
||||
|
||||
if (!k->beingUsed) {
|
||||
if (event.KeyInput.PressedDown)
|
||||
k->beingUsed=true;
|
||||
glfwGetCursorPos(window,posX,posY);
|
||||
int joystick;
|
||||
int numAxis=3,numButtons=6;
|
||||
const u8 *buttons;
|
||||
const float *axis;
|
||||
|
||||
k->pressed=event.KeyInput.PressedDown;
|
||||
stateManager->getAppState(i)->onAction(k->bind, k->pressed);
|
||||
}
|
||||
} else {
|
||||
k->pressed=event.KeyInput.PressedDown;
|
||||
stateManager->getAppState(i)->onAnalog(k->bind, 0.);
|
||||
}
|
||||
}
|
||||
if(glfwJoystickPresent(GLFW_JOYSTICK_1)){
|
||||
joystick = GLFW_JOYSTICK_1;
|
||||
axis = glfwGetJoystickAxes(joystick, &numAxis);
|
||||
buttons = glfwGetJoystickButtons(joystick, &numButtons);
|
||||
}
|
||||
|
||||
stateManager->getAppState(i)->onRawKeyPress(event.KeyInput);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (event.EventType == EET_MOUSE_INPUT_EVENT && event.MouseInput.Event != EMIE_MOUSE_MOVED) {
|
||||
bool isPressed = false;
|
||||
switch (event.MouseInput.Event) {
|
||||
case EMIE_LMOUSE_PRESSED_DOWN:
|
||||
offsetTrigger = 0;
|
||||
isPressed = true;
|
||||
break;
|
||||
case EMIE_LMOUSE_LEFT_UP:
|
||||
offsetTrigger = 0;
|
||||
isPressed = false;
|
||||
break;
|
||||
case EMIE_MMOUSE_PRESSED_DOWN:
|
||||
offsetTrigger = 1;
|
||||
isPressed = true;
|
||||
break;
|
||||
case EMIE_MMOUSE_LEFT_UP:
|
||||
offsetTrigger = 1;
|
||||
isPressed = false;
|
||||
break;
|
||||
case EMIE_RMOUSE_PRESSED_DOWN:
|
||||
offsetTrigger = 2;
|
||||
isPressed = true;
|
||||
break;
|
||||
case EMIE_RMOUSE_LEFT_UP:
|
||||
offsetTrigger = 2;
|
||||
isPressed = false;
|
||||
break;
|
||||
case EMIE_MOUSE_WHEEL:
|
||||
if (event.MouseInput.Wheel == 1)
|
||||
offsetTrigger = 3;
|
||||
else
|
||||
offsetTrigger = 4;
|
||||
break;
|
||||
}
|
||||
for(int j = 0; j < stateManager->getAppStates().size(); j++){
|
||||
AbstractAppState *a = stateManager->getAppStates()[j];
|
||||
|
||||
for (int i = 0; i < stateManager->getAppStateNumber(); i++) {
|
||||
for (Key *k : stateManager->getAppState(i)->getKeys()) {
|
||||
if (offsetTrigger == k->trigger) {
|
||||
if (!k->analog) {
|
||||
k->pressed=isPressed;
|
||||
stateManager->getAppState(i)->onAction(k->bind, k->pressed);
|
||||
} else {
|
||||
k->beingUsed=isPressed;
|
||||
}
|
||||
}
|
||||
for(int i = 0; i < a->getKeysNumber(); i++){
|
||||
Mapping *m = a->getKey(i);
|
||||
|
||||
if(offsetTrigger<=2)
|
||||
stateManager->getAppState(i)->onRawMousePress(event.MouseInput);
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
if(m->action){
|
||||
bool pressed;
|
||||
|
||||
void EventListener::update() {
|
||||
StateManager *stateManager = GameManager::getSingleton()->getStateManager();
|
||||
switch(m->type){
|
||||
case Mapping::KEYBOARD:
|
||||
pressed=glfwGetKey(window,m->trigger);
|
||||
break;
|
||||
case Mapping::MOUSE_KEY:
|
||||
pressed=glfwGetMouseButton(window,m->trigger);
|
||||
break;
|
||||
case Mapping::JOYSTICK_KEY:
|
||||
if(glfwJoystickPresent(GLFW_JOYSTICK_1)){
|
||||
pressed=buttons[m->trigger];
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
for (int i = 0; i < stateManager->getAppStateNumber(); i++) {
|
||||
for (Key *k : stateManager->getAppState(i)->getKeys()) {
|
||||
if (k->beingUsed && k->analog) {
|
||||
stateManager->getAppState(i)->onAnalog(k->bind, 0.);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if((pressed&&!m->pressed)||(!pressed&&m->pressed)){
|
||||
m->pressed=pressed;
|
||||
a->onAction(m->bind,pressed);
|
||||
}
|
||||
}
|
||||
else{
|
||||
switch(m->type){
|
||||
case Mapping::MOUSE_AXIS:
|
||||
{
|
||||
float str;
|
||||
switch(m->trigger){
|
||||
case Mapping::MOUSE_AXIS_LEFT:
|
||||
case Mapping::MOUSE_AXIS_RIGHT:
|
||||
str=strX;
|
||||
break;
|
||||
case Mapping::MOUSE_AXIS_UP:
|
||||
case Mapping::MOUSE_AXIS_DOWN:
|
||||
str=strY;
|
||||
break;
|
||||
}
|
||||
a->onAnalog(m->bind,str);
|
||||
break;
|
||||
}
|
||||
case Mapping::JOYSTICK_AXIS:
|
||||
{
|
||||
int axisId = (m->trigger - (m->trigger % 2 > 0)) / 2;
|
||||
float str = fabs(axis[axisId]) >= .1 ? axis[axisId] : 0;
|
||||
|
||||
if(fabs(str)>0)
|
||||
a->onAnalog(m->bind,str);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
for(int i=0;i<350;i++){
|
||||
if(glfwGetKey(window,i))
|
||||
a->onRawKeyButton(i);
|
||||
else if(glfwGetMouseButton(window,i))
|
||||
a->onRawMouseButton(i);
|
||||
}
|
||||
*/
|
||||
|
||||
glfwSetCursorPosCallback(window,foo);
|
||||
|
||||
/*
|
||||
if(glfwJoystickPresent(GLFW_JOYSTICK_1)){
|
||||
for(int i=0;i<numAxis;i++)
|
||||
if(abs(axis[i])==1)
|
||||
a->onRawJoystickAxis(i,axis[i]);
|
||||
|
||||
for(int i=0;i<numButtons;i++)
|
||||
if(buttons[i])
|
||||
a->onRawJoystickButton(i);
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user