Quellcode durchsuchen

Make SdlInput regularly inject the mouse position into the Input singleton.

legacy
Sam Hocevar sam vor 14 Jahren
Ursprung
Commit
d248ae8b9a
3 geänderte Dateien mit 24 neuen und 2 gelöschten Zeilen
  1. +16
    -1
      src/input.cpp
  2. +2
    -0
      src/input.h
  3. +6
    -1
      src/sdlinput.cpp

+ 16
- 1
src/input.cpp Datei anzeigen

@@ -29,7 +29,12 @@ static class InputData
friend class Input;

public:
int dummy;
InputData()
{
mouse.x = mouse.y = -1;
}

Int2 mouse;
}
inputdata;

@@ -59,3 +64,13 @@ Float2 Input::GetAxis(int axis)
return f;
}

void Input::SetMousePos(Int2 coord)
{
data->mouse = coord;
}

Int2 Input::GetMousePos()
{
return data->mouse;
}


+ 2
- 0
src/input.h Datei anzeigen

@@ -22,6 +22,8 @@ class Input
{
public:
static Float2 GetAxis(int axis);
static void SetMousePos(Int2 coord);
static Int2 GetMousePos();
};

#endif // __DH_INPUT_H__


+ 6
- 1
src/sdlinput.cpp Datei anzeigen

@@ -48,7 +48,12 @@ void SdlInput::TickGame(float deltams)
Entity::TickGame(deltams);

/* Handle mouse input */
SDL_GetMouseState(&data->mx, &data->my);
Int2 mouse;
if (SDL_GetAppState() & SDL_APPMOUSEFOCUS)
SDL_GetMouseState(&mouse.x, &mouse.y);
else
mouse.x = mouse.y = -1;
Input::SetMousePos(mouse);

/* Handle keyboard and WM events */
SDL_Event event;


Laden…
Abbrechen
Speichern