Commit Graph

  • dcebed9ff9 Update test program with special conditions for Windows and Mac Cocktail Frank 2024-11-17 11:38:51 -05:00
  • d40200f67f Fix suppress input timer precision in test program Cocktail Frank 2024-11-16 20:49:14 -05:00
  • 66db6fb0bf Move Mac working directory fix for tests into setup Cocktail Frank 2024-11-16 19:50:00 -05:00
  • 75208543a4 Update test program with special conditions for Emscripten builds Cocktail Frank 2024-11-16 18:53:27 -05:00
  • 573a91daa2 Fix compilation of sb::progress on Emscripten builds Cocktail Frank 2024-11-15 17:22:40 -05:00
  • 040bf539c6 Sync new achievements to Steam immediately Cocktail Frank 2024-11-15 15:15:28 -05:00
  • 3abcc92963 Fix description of Stat types in documentation Cocktail Frank 2024-11-14 14:35:39 -05:00
  • 9d368acff6 Add read-only access to Achievement object's JSON Cocktail Frank 2024-11-12 17:27:05 -05:00
  • 5c4f84cdc7 Log a message when an achievement is unlocked Cocktail Frank 2024-11-09 18:46:28 -05:00
  • fac4568066 Hack debug info about type_error into json.hpp Cocktail Frank 2024-11-06 20:26:19 -05:00
  • 49bc96c241 Get count of achievements unlocked in progress Cocktail Frank 2024-11-03 01:28:31 -04:00
  • bef0960109 Add support for storing and loading user preferences Cocktail Frank 2024-11-01 19:09:55 -04:00
  • 5ee08dfeb9 Time functions for getting date as a string and minutes since epoch Cocktail Frank 2024-10-30 19:02:09 -04:00
  • 5f18894d5d Support for defaulting to a value when reading a stat Cocktail Frank 2024-10-24 14:15:03 -04:00
  • 1536f7c2fb Minor line length linting Cocktail Frank 2024-10-23 23:40:51 -04:00
  • 55abc9af7f Add common test setup header, fix various stat assignment bugs Cocktail Frank 2024-10-18 18:45:35 -04:00
  • a723421d19 Treat missing stat value as zero when calculating sum Cocktail Frank 2024-10-16 19:32:19 -04:00
  • a5f0cc0b2c Set stat values for stats which are sums automatically on Steam Cocktail Frank 2024-10-16 15:55:10 -04:00
  • e624fc37b2 Track unsaved status of progress object Cocktail Frank 2024-10-15 16:28:56 -04:00
  • 01d6d03df4 Unlock corresponding achievements when setting stat values Cocktail Frank 2024-10-10 17:08:05 -04:00
  • a0cc137033 Require Achievement object to unlock achievement Cocktail Frank 2024-10-09 00:16:47 -04:00
  • 79ed51607e Add default definitions option to Progress::load Cocktail Frank 2024-10-07 20:25:02 -04:00
  • 29a694200d Add sb::progress for save files, stats, and achievements Cocktail Frank 2024-10-05 20:43:48 -04:00
  • 1405d548f5 Improve Game::run and add Steam API callbacks Cocktail Frank 2024-09-17 02:01:11 -04:00
  • 9a758f8c7f Handle argc=0 and argv=NULL in sb::init Cocktail Frank 2024-09-11 19:00:43 -04:00
  • fe3b5f218d Echo message for every successful build Cocktail Frank 2024-09-11 14:40:53 -04:00
  • b78e29995a Initial Steam API support for MacOS builds Cocktail Frank 2024-09-10 23:26:44 -04:00
  • 5a39c3fa82 Steam API initialization for Windows targets Cocktail Frank 2024-09-10 17:50:03 -04:00
  • 8fb8baaf0d wip Cocktail Frank 2024-09-09 16:36:20 -04:00
  • 149b0106c3 wip Cocktail Frank 2024-09-09 15:04:20 -04:00
  • 4ebea58ba0 wip - fix builds Cocktail Frank 2024-09-07 18:32:55 -04:00
  • 7530458309 wip Cocktail Frank 2024-09-06 20:51:17 -04:00
  • 4955c4853b Send messages to the log using the stream operator Cocktail Frank 2024-09-05 20:35:48 -04:00
  • 15ef6b0e17 - Feature: CLI for adding configuration from the terminal - Added more builds of the test program: Ubuntu-18, MacOS, Windows - Added multiple reports to the test program output: console, JSON file, and text file - Added tests to verify the CLI feature is working properly - sb::init and sb::cli::init functions initialize the framework and parse command line - Config parsed from CLI is merged the Game constructor - Change directory on MacOS in sb::init instead of in Game constructor - Use nlohmann::json exception instead of std::exception in JSON file reading function Cocktail Frank 2024-08-20 20:21:06 -04:00
  • 088e7b6120 Use shared_ptr to store SDL window and update existing references frank 2024-07-26 22:02:19 -04:00
  • 2f6a2500f6 - Added unit test framework Catch2 to the repository - Added a simple test program that loads Catch2 and opens and closes a game - Added build targets for Linux and Emscripten for the test program - Game class is no longer pure abstract, so it can be instantiated directly - Changed glcontext to a shared_ptr so it will be deleted automatically frank 2024-07-25 01:45:32 -04:00
  • 3316d8ceb5 - throw exceptions on failure instead of just printing a warning when: loading a json config, loading a shader, reading a file's contents into a string - allow config reloads to fail with just a warning (same behavior as before, but modified to use exceptions) - allow standard config files to fail to load with a warning (same behavior as before, but modified to use exceptions) frank 2024-07-19 01:03:59 -04:00
  • c2b8e37861 Added CLI11 library, and changed Game constructor to accept JSON objects instead of file paths frank 2024-07-11 21:27:54 -04:00
  • 852e7ff2ba - configure and enable/disable stdout and file logs separately - prevent GL error checking by default and add functions for allowing/disallowing - disable logging by default 0.0.1 frank 2024-06-05 00:58:59 -04:00
  • bc293232c2 fix compiler warnings frank 2024-05-29 22:21:53 -04:00
  • effcaecaf1 minor line length linting frank 2024-05-25 21:10:56 -04:00
  • 175e1ee39a add auto generated version string which pulls version from git 0.0.0 frank 2024-05-25 17:27:03 -04:00
  • bc9cef8674 skip entry if it is an empty array in key input map; add const function for checking if Pad is enabled frank 2024-05-09 03:05:18 -04:00
  • 0aafdb1ff0 linting docstring line lengths frank 2024-05-08 12:58:42 -04:00
  • a9665c7e37 macOS build documentation frank 2024-05-03 15:50:44 -04:00
  • 102d1749a5 added function to disable audio chunks, colors default to fully transparent, add public getters for Pad::box and Pad::visible frank 2024-05-01 20:25:35 -04:00
  • 8498dfa004 - consolidate GL includes into one header - build flags for MacOS - replace glTexStorage2D with more compatible glTexImage2D frank 2024-04-24 15:01:17 -04:00
  • 87a946a61e fix missed reference to std::filesystem frank 2024-04-18 00:14:55 -04:00
  • a1eef8017e fix clang version in comment frank 2024-04-18 00:11:40 -04:00
  • 65eead0079 use experimental filesystem path for Ubuntu 18.04 frank 2024-04-18 00:01:23 -04:00
  • 6fdfa67c41 WIP documentation on building for macOS and building wider Linux compatibility frank 2024-04-14 00:57:48 -04:00
  • caf9044093 use code block formatting for ascii art frank 2024-04-03 13:08:49 -04:00
  • 5fa063ac6f remove PI preprocessor definition from documentation frank 2024-04-02 19:07:56 -04:00
  • 27ab95037f add Animation constructor with just frame length parameter frank 2024-03-06 21:22:07 -05:00
  • 0e4f06d779 - restore video recording - remove sdl context - configurable audio device settings - deprecate node - move audio recording input handling to game object frank 2024-03-04 19:44:06 -05:00
  • 71ff65d588 added details and updates to Raspberry Pi doc section frank 2024-02-16 19:41:15 -05:00
  • 923c805fe5 reset animation object before calling animation function in case the animation function reenables the animation frank 2023-12-28 16:11:35 -08:00
  • 1fff973b46 add option for texture resize filter to sprite, add functions for finding loudest mixer channel frank 2023-12-27 19:20:20 -08:00
  • 11c8abcc54 support for merging an optional list of config files at the beginning of the program frank 2023-12-26 22:31:28 -05:00
  • 5d950387a8 make android and wasm config file paths configurable frank 2023-12-26 20:26:31 -05:00
  • 8e62f9e0a2 initialize game controller interface at startup frank 2023-12-15 00:54:20 -05:00
  • 8184a62a54 add escape to key IDs frank 2023-12-14 01:11:18 -05:00
  • 464e69be56 fix initial config modification check, add wrap parameter to text object frank 2023-12-12 00:42:38 -05:00
  • c7fb948e39 make refresh function public for sb::Text frank 2023-12-07 19:24:04 -05:00
  • fb68938889 use SDL's desktop fullscreen flag for simpler fullscreen behavior, and use Emscripten's fullscreen functionality for web builds; add a flag for disabling fullscreen through the configuration frank 2023-12-05 17:56:56 -05:00
  • 5235535cc2 set window fullscreen display mode to current desktop mode before going fullscreen frank 2023-12-05 15:28:36 -05:00
  • a6a110141d add toggle function to pause/unpause sb::Animation frank 2023-12-05 13:43:16 -05:00
  • 5750997d5c add doc to sb::Animation::playing frank 2023-12-04 23:14:30 -05:00
  • a5f55be257 function to get sb::Color as glm::vec4 frank 2023-12-04 21:53:49 -05:00
  • ec6a720b24 set texture wrap to clamp frank 2023-11-30 00:34:54 -05:00
  • 0a42df9a00 add sprite texture index increment function frank 2023-11-14 17:57:45 -05:00
  • 110b876648 deprecate passing callback to Animation; add an update function to Sprite for running frame by frame animation; rename log's ERROR to ERR to avoid conflict with windows.h frank 2023-11-14 00:19:32 -05:00
  • 333a7b73ac pad object can be disabled and/or hidden frank 2023-11-08 20:00:48 -05:00
  • a91bc4b773 - JSON from file static function - configuration option to start in fullscreen - render text wrapped when exceeding 3000 pixels wide (arbitrary temporary value) - set timer elapsed to any amount of seconds frank 2023-11-04 23:52:43 -04:00
  • e168844fc5 - added Windows build using MinGW for box demo along with Windows instructions to main README - replaced Model class in box demo with library's Model class - switched GL context profile mask to compatibility in Windows builds - only open audio device if audio is initialized - increase default audio frequency and buffer size - convert path objects to strings for compatibility with MinGW - update MinGW builds to use regular filesystem library instead of experimental frank 2023-10-18 00:07:32 -04:00
  • d575307b15 - redesign audio library to use Chunk and Music classes which align more closely with SDL Mix_Chunk and Mix_Music - remove default texture index from Model class - add support for two textures to Pad class - restore SDL audio mixer initialization parameters to SDL defaults - add optional log level to SDL error logging function frank 2023-10-09 23:50:18 -04:00
  • 5046b4bcf1 add custom event that fires on all window resize events frank 2023-09-28 21:11:30 -04:00
  • a4435242f8 minor edit to documentation wording frank 2023-09-22 23:22:00 -04:00
  • 293d74e396 removed hyphens from keyboard input related configuration key names frank 2023-09-22 14:56:35 -04:00
  • 9a6b80f443 added function for extracting a grid of tile surfaces from a larger SDL surface frank 2023-09-18 22:10:04 -04:00
  • d882e111b3 - fix sb::Pad to move the collision box when scaled or translated - add warning about config JSON copy - add setter for sb::Pad::_plane - move point on circle functions from extension to math frank 2023-09-16 21:04:43 -04:00
  • 4c3235c2ff frame timing updated to run at maximum allowable framerate, delay between frame calls configurable, vsync flag configurable, max framerate configurable up to unlimited frank 2023-09-07 19:09:04 -04:00
  • c0fe0c782d add doc comment to box scale functions frank 2023-09-04 16:31:10 -04:00
  • 081328e63d store size and format of texture object, only regenerate texture and reallocate memory if size and format are changing frank 2023-08-16 18:57:35 -04:00
  • e453a62679 update sprite class's private member var comments, remove extraneous quotes from texture log message frank 2023-08-14 16:44:25 -04:00
  • a055001482 add method to clear texture list to sprite class, add comments explaining model class's private member vars frank 2023-08-14 16:30:38 -04:00
  • edafaf08ea add texture index to Sprite class, add more error checks to texture surface creation frank 2023-08-08 12:41:10 -04:00
  • 62450f7033 add support for specifying multiple keys per command in config frank 2023-08-02 13:17:44 -04:00
  • 67fa7e61c3 docstring example for outputting attributes to stream frank 2023-07-27 23:21:14 -04:00
  • 67c3e193f4 add more info to message when exeception is raised while enabling model attributes frank 2023-07-23 20:01:45 -04:00
  • f9d171626f added more conversion rules for JSON array to GLM vertex, truncate attribute string representation, post reconfig event on configuration reload, added font load function, added exception handling to functions that bind textures frank 2023-07-23 17:11:41 -04:00
  • b93aae19e0 rename sb::Text::size to sb::Text::dimensions frank 2023-07-22 14:00:37 -04:00
  • 1d527898aa watch multiple config files for changes frank 2023-07-21 00:51:19 -04:00
  • 27d2128e1f move post command into delegate frank 2023-07-19 12:47:18 -04:00
  • cd66f70d0c attribute index exception, overload attributes bind, model add and bind methods frank 2023-07-18 23:19:57 -04:00
  • d1fe6b927c move sprite and pad into sb namespace frank 2023-07-15 12:19:37 -04:00
  • 7bbc0f851d minor fix to model documentation frank 2023-07-15 12:05:06 -04:00
  • 9a727513a1 added sprite and pad classes frank 2023-07-15 11:48:08 -04:00
  • ba8f4753bf throw exception if VBO is not bound when allocate is called, reset VBO offset on ID generation frank 2023-07-14 00:30:30 -04:00
  • b9dd2836f2 add documentation to VBO header file frank 2023-07-13 21:51:07 -04:00