Age | Commit message (Collapse) | Author | |
---|---|---|---|
2019-08-27 | Minesweeper: Reorganize menus a bit | Andreas Kling | |
Move some of the "Game" menu into the app menu, and add a separate menu for the difficulty setting. | |||
2019-08-27 | Snake: Merge "Game" menu into the app menu | Andreas Kling | |
2019-08-12 | Minesweeper: Make the SquareButtons non-checkable | Andreas Kling | |
We manage the checked state of these buttons manually in the code, and we don't want the user to interfere with it, which would be possible if we put them in checkable state. | |||
2019-07-29 | Minesweeper: refactor on_square_clicked and flood_mark | Drew Stratford | |
Both on_square_clicked and flood_mark were very similar so I've introduced the on_square_clicked_impl function which is now called by on_square_clicked and flood_fill. | |||
2019-07-29 | Minesweeper: updated flood_fill to use Queue | Drew Stratford | |
2019-07-29 | Minesweeper: make Field::flood_fill iterative | Drew Stratford | |
This change uses an iterative traversal to avoid stack overflows in, the previously recursive, flood_fill. | |||
2019-07-28 | WindowServer+LibGUI: Pass window icons as shared buffers rather than paths. | Andreas Kling | |
Now that we support more than 2 clients per shared buffer, we can use them for window icons. I didn't do that previously since it would have made the Taskbar process unable to access the icons. This opens up some nice possibilities for programmatically generated icons. | |||
2019-07-23 | LibGUI: Get rid of GWindow::should_exit_event_loop_on_close(). | Andreas Kling | |
This behavior and API was extremely counter-intuitive since our default behavior was for applications to never exit after you close all of their windows. Now that we exit the event loop by default when the very last GWindow is deleted, we don't have to worry about this. | |||
2019-07-20 | GWidget: Add set_preferred_size(width, height) overload. | Andreas Kling | |
It was annoying to always write set_preferred_size({ width, height }). :^) | |||
2019-07-18 | LibDraw: Introduce (formerly known as SharedGraphics.) | Andreas Kling | |
Instead of LibGUI and WindowServer building their own copies of the drawing and graphics code, let's it in a separate LibDraw library. This avoids building the code twice, and will encourage better separation of concerns. :^) | |||
2019-07-11 | Minesweeper: Remove use of copy_ref(). | Andreas Kling | |
2019-07-03 | AK: Add String::number() for creating a String from a number. | Andreas Kling | |
Instead of manually doing String::format("%d"/"%u") everywhere, let's have a String API for this. It's just a wrapper around format() for now, but it could be made more efficient in the future. | |||
2019-07-01 | Minesweeper: Move configuration reading to Field | Jookia | |
This makes more sense as it's where configuration writing happens. | |||
2019-07-01 | Minesweeper: Allow single-click chording | Jookia | |
This is how other Minesweeper games I've played usually behave. Single-click chording can be disabled from the menu or config file. | |||
2019-06-30 | Meta: Removed all gitignore in the source tree only keeping the root one | VAN BOSSUYT Nicolas | |
2019-06-30 | GUI: Use Win2K-like "warm gray" color instead of the older colder gray. | Andreas Kling | |
Someone suggested this a long time ago and I never got around to it. So here we go, here's the warm gray! I have to admit I like it better. :^) | |||
2019-06-27 | Snake: Use NonnullRefPtrVector. | Andreas Kling | |
2019-06-21 | AK: Rename RetainPtr => RefPtr and Retained => NonnullRefPtr. | Andreas Kling | |
2019-06-07 | Meta: Tweak .clang-format to not wrap braces after enums. | Andreas Kling | |
2019-06-07 | Games: Run clang-format on everything. | Andreas Kling | |
2019-05-28 | Add clang-format file | Robin Burchell | |
Also run it across the whole tree to get everything using the One True Style. We don't yet run this in an automated fashion as it's a little slow, but there is a snippet to do so in makeall.sh. | |||
2019-05-19 | Minesweeper: Make things a little more friendly at the start | Robin Burchell | |
Rather than having the first click hit a bomb, if the first click would hit a bomb, instead, reset the game board. This is a (sort of) feature of Windows minesweeper, and IMO makes playing a bit more fun :-) | |||
2019-05-13 | Fix "make clean" not deleting app binaries. | Andreas Kling | |
2019-05-11 | Fix some more victims of the new default layout spacing. | Andreas Kling | |
2019-05-06 | Minesweeper: Flag unflagged mines on win. | Andreas Kling | |
2019-05-02 | Minesweeper: Fix lag when changing the field size. | Andreas Kling | |
Use a number of techniques to avoid freezing the UI for too long. - Keep reusing the same widgets for the squares once they've been created. - Temporarily disable widget updates. - Avoid some redundant work on each run of reset(). | |||
2019-04-28 | Minesweeper: Add considering feature, where middle clicking marks with '?' | Andreas Kling | |
This is useful in the harder modes, for trying out different possibilities. | |||
2019-04-26 | Minesweeper: Implement some feature requests. | Andreas Kling | |
Someone was playing this game and suggested a number of improvements so here we go trying to address them: - Add "chording" support, where you can click a numbered square using both mouse buttons simultaneously to sweep all non-flagged adjacent squares. - Mis-flagged squares are now revealed as such on game over, with a special "bad flag" icon. - The game timer now shows tenths of seconds. It also doesn't start until you click the first square. - Add the three difficulty modes from the classic Windows version. | |||
2019-04-26 | Games: Use Makefile.common here too. | Andreas Kling | |
2019-04-21 | Snake+Minesweeper: Exit process when game window is closed. | Andreas Kling | |
2019-04-20 | Snake: Show the highest score achieved so far (in this session.) | Andreas Kling | |
2019-04-20 | LibGUI+Minesweeper: Add GWindow::set_resizable(). | Andreas Kling | |
2019-04-20 | Snake: Add a window icon. :^) | Andreas Kling | |
2019-04-20 | Snake: Disable double-buffering for the game window. | Andreas Kling | |
There's no need to use automatic double-buffering here since we manage the backing store manually. | |||
2019-04-20 | Snake: Add some more fruit types. | Andreas Kling | |
2019-04-20 | Snake: Tweak game speed so it's not too easy. | Andreas Kling | |
2019-04-20 | Snake: Try to only repaint the parts that actually changed between ticks. | Andreas Kling | |
2019-04-20 | Get rid of SERENITY macro since the compiler already defines __serenity__ | Andreas Kling | |
This makes it a bit easier to use AK templates out-of-tree. | |||
2019-04-20 | Snake: Use a vegetable icon for the fruit. | Andreas Kling | |
2019-04-20 | Snake: Clear the movement queue on game reset. | Andreas Kling | |
2019-04-20 | Snake: Use a queue for the movement inputs. | Andreas Kling | |
This makes it a lot less finicky to make rapid moves like staircasing and sudden turns. | |||
2019-04-20 | Snake: Flesh out a basic snake game :^) | Andreas Kling | |
2019-04-20 | Snake: Import skeleton of a new snake game. | Andreas Kling | |
2019-04-15 | Minesweeper: Add little icons to the flags and timer labels. | Andreas Kling | |
2019-04-15 | Minesweeper: Paint a grid pattern below the mines. | Andreas Kling | |
2019-04-15 | LibCore: Add a CConfigFile class, a simple INI file parser. | Andreas Kling | |
You open the configuration for an app like so: auto config = CConfigFile::get_for_app("MyApp"); This will then open ~/MyApp.ini and parse it for you. Immediately start using it in Minesweeper to load the field size and mine count from a config file. | |||
2019-04-14 | Minesweeper: Add flag counter and game timer. | Andreas Kling | |
2019-04-14 | Minesweeper: Flood fill should include the first numbered found. | Andreas Kling | |
2019-04-13 | WindowServer+LibGUI: Add ability to set per-window icons. | Andreas Kling | |
The icons are passed around as filesystem paths for now, since the shared memory bitmaps only support 2 sides. | |||
2019-04-13 | Minesweeper: Make it possible to win the game. :^) | Andreas Kling | |