diff --git a/olcPixelGameEngine.h b/olcPixelGameEngine.h index 5480a15..aefcd1c 100644 --- a/olcPixelGameEngine.h +++ b/olcPixelGameEngine.h @@ -315,6 +315,11 @@ +FillTexturedTriangle() - Software rasterizes a textured, coloured, triangle +FillTexturedPolygon() - Hijacks DecalStructure for configuration +olc::vf2d arguments for Sprite::Sample() functions + + SIG Updates: + The following additions are included in Sig's version of the PGE header (this is a sig version) + +GetAnyKey() - Returns when a key is activated + +GetAnyKeyPress() - Returns when a key is pressed down (and if a keyboard key, which key it was) !! Apple Platforms will not see these updates immediately - Sorry, I dont have a mac to test... !! !! Volunteers willing to help appreciated, though PRs are manually integrated with credit !! @@ -971,6 +976,8 @@ namespace olc virtual bool OnUserUpdate(float fElapsedTime); // Called once on application termination, so you can be one clean coder virtual bool OnUserDestroy(); + virtual void GetAnyKey(); + virtual void GetAnyKeyPress(olc::Key pressedKey); // Called when a text entry is confirmed with "enter" key virtual void OnTextEntryComplete(const std::string& sText); @@ -3674,6 +3681,9 @@ namespace olc bool PixelGameEngine::OnUserDestroy() { return true; } + void PixelGameEngine::GetAnyKey(){}; + void PixelGameEngine::GetAnyKeyPress(olc::Key pressedKey){}; + void PixelGameEngine::OnTextEntryComplete(const std::string& sText) { UNUSED(sText); } bool PixelGameEngine::OnConsoleCommand(const std::string& sCommand) { UNUSED(sCommand); return false; } @@ -3831,8 +3841,10 @@ namespace olc platform->HandleSystemEvent(); // Compare hardware input states from previous frame - auto ScanHardware = [&](HWButton* pKeys, bool* pStateOld, bool* pStateNew, uint32_t nKeyCount) + auto ScanHardware = [&](HWButton* pKeys, bool* pStateOld, bool* pStateNew, uint32_t nKeyCount,bool keyboard=true) { + bool pressed=false; + int key; for (uint32_t i = 0; i < nKeyCount; i++) { pKeys[i].bPressed = false; @@ -3841,6 +3853,8 @@ namespace olc { if (pStateNew[i]) { + pressed=true; + key=i; pKeys[i].bPressed = !pKeys[i].bHeld; pKeys[i].bHeld = true; } @@ -3849,13 +3863,18 @@ namespace olc pKeys[i].bReleased = true; pKeys[i].bHeld = false; } + GetAnyKey(); } pStateOld[i] = pStateNew[i]; } + if (pressed) { + if (keyboard) {GetAnyKeyPress((olc::Key)key);} + else {GetAnyKeyPress(olc::Key::NONE);} + } }; ScanHardware(pKeyboardState, pKeyOldState, pKeyNewState, 256); - ScanHardware(pMouseState, pMouseOldState, pMouseNewState, nMouseButtons); + ScanHardware(pMouseState, pMouseOldState, pMouseNewState, nMouseButtons, false); // Cache mouse coordinates so they remain consistent during frame vMousePos = vMousePosCache;