| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | Allow multiple button types | Xavier Del Campo Romero | 2022-07-07 | 6 | -117/+218 |
| | | |||||
| * | button.c: fix wrong function call | Xavier Del Campo Romero | 2022-07-07 | 1 | -1/+1 |
| | | |||||
| * | rounded_rect.h: fix typo | Xavier Del Campo Romero | 2022-07-07 | 1 | -1/+1 |
| | | |||||
| * | font.c: set null dimensions on null str | Xavier Del Campo Romero | 2022-07-02 | 1 | -0/+11 |
| | | |||||
| * | human_player_gui.c: use gui_container for top gui_bar | Xavier Del Campo Romero | 2022-07-02 | 1 | -9/+16 |
| | | |||||
| * | gui/container: support spacing between GUI elements | Xavier Del Campo Romero | 2022-07-02 | 2 | -1/+7 |
| | | |||||
| * | gui/bar: support arbitrary x/y and width | Xavier Del Campo Romero | 2022-07-02 | 2 | -20/+46 |
| | | |||||
| * | gui: reuse callback data | Xavier Del Campo Romero | 2022-07-02 | 8 | -26/+60 |
| | | | | | | | There is no need to allocate memory for these callbacks for each single GUI element. Instead, a single, statically-allocated instance can be shared among all GUI elements of a given type. | ||||
| * | menu: implement main menu using new GUI improvements | Xavier Del Campo Romero | 2022-07-02 | 1 | -8/+19 |
| | | |||||
| * | gui: implement container | Xavier Del Campo Romero | 2022-07-02 | 3 | -0/+91 |
| | | | | | | Containers, somewhat inspired by GtkBox, allow to packed other GUI elements into a single row or column. | ||||
| * | button.c: h/v-center child label by default | Xavier Del Campo Romero | 2022-07-02 | 1 | -0/+2 |
| | | |||||
| * | gui.c: fix wrong logic on gui_coords | Xavier Del Campo Romero | 2022-07-02 | 1 | -1/+3 |
| | | | | | | | | The older logic would iterate for all parents, where each parent would again iterate for all of its parents, until no more parents found. This is however not needed, since only inspecting the closest parent will already cause the (recursive) algorithm to iterate for all parents. | ||||
| * | gui: allow custom add_child callback | Xavier Del Campo Romero | 2022-07-02 | 2 | -0/+4 |
| | | |||||
| * | menu.c: center play button on screen | Xavier Del Campo Romero | 2022-06-29 | 1 | -2/+2 |
| | | |||||
| * | button.c: fail on negative width | Xavier Del Campo Romero | 2022-06-29 | 1 | -0/+2 |
| | | |||||
| * | gui: implement {h,v}centered | Xavier Del Campo Romero | 2022-06-29 | 5 | -3/+70 |
| | | |||||
| * | font: implement font_dim | Xavier Del Campo Romero | 2022-06-29 | 2 | -16/+46 |
| | | |||||
| * | Deprecate memset(3) for zero-init | Xavier Del Campo Romero | 2022-06-27 | 2 | -2/+2 |
| | | |||||
| * | human_player_gui.c: fix segfault when selecting one unit | Xavier Del Campo Romero | 2022-06-27 | 1 | -1/+1 |
| | | | | | | | | Checking against `sel` is just plain wrong, since it always expected to be non-NULL, since `h->sel` is an array defined in `struct human_player`. Instead, `sel->d.i` is the pointer that should be checked. | ||||
| * | human_player: deprecate memset(3) for zero-init | Xavier Del Campo Romero | 2022-06-26 | 2 | -7/+12 |
| | | |||||
| * | human_player.c: reset deselected instances | Xavier Del Campo Romero | 2022-06-26 | 1 | -0/+9 |
| | | |||||
| * | Fix hp bar not being displayed when carrying | Xavier Del Campo Romero | 2022-06-26 | 1 | -7/+6 |
| | | |||||
| * | ps1/heap.c: bump heap size | Xavier Del Campo Romero | 2022-06-26 | 1 | -1/+1 |
| | | |||||
| * | Implement main menu | Xavier Del Campo Romero | 2022-06-26 | 7 | -11/+104 |
| | | |||||
| * | terrain: fix wrong rendering | Xavier Del Campo Romero | 2022-06-26 | 1 | -2/+2 |
| | | | | | | The older implementation would leave empty areas on the right side of the screen. | ||||
| * | font: deprecate font_printf | Xavier Del Campo Romero | 2022-06-26 | 2 | -20/+0 |
| | | | | | This function is no longer needed since `gui` was revamped. | ||||
| * | Revamp gui component | Xavier Del Campo Romero | 2022-06-26 | 23 | -598/+1245 |
| | | | | | | | | | | | | | | | | | | | | | `gui` was tighly coupled to game logic, and could not be extended for other purposes. Therefore, a generic GUI implementation, loosely inspired by well-known GUI frameworks such as GTK, is now provided, with the following properties: - Does not depend on dynamic or static memory allocation, only automatic (i.e., stack) memory allocation required. - Portable among existing implementations. - Simple to extend. - Tiny memory footprint. `gui` is now composed by GUI elements that can be chained to form a tree structure. This is useful e.g.: to calculate X/Y coordinates for a given GUI element given its parent(s). This commit also refactors the older implementation, moving game-specific logic into `player` and making use of the new component. | ||||
| * | font: add font_puts | Xavier Del Campo Romero | 2022-06-26 | 2 | -0/+7 |
| | | |||||
| * | peripheral.c: initialize common members only | Xavier Del Campo Romero | 2022-06-26 | 1 | -1/+1 |
| | | | | | Other members will be initialized according to peripheral configuration. | ||||
| * | Deprecate memset(3) over C99 compound literals for zero-init | Xavier Del Campo Romero | 2022-06-26 | 3 | -3/+3 |
| | | | | | | Using memset(3) does not ensure pointers are assigned to NULL for all platforms. | ||||
| * | player: limit data sizes for resources and population | Xavier Del Campo Romero | 2022-06-26 | 3 | -3/+6 |
| | | | | | | - All platforms should allow for the same resources. - Population is not expected to exceed UCHAR_MAX on any platform. | ||||
| * | camera: implement fixed cursor movement | Xavier Del Campo Romero | 2022-06-24 | 3 | -3/+77 |
| | | | | | | | | | | | | On platforms with PERIPHERAL_TYPE_PAD, navigating through menus and options can be cumbersome if moving the cursor freely around the screen. Therefore, this commit instead defines a list of (X, Y) coordinates that the cursor can jump to. The implementation also attempts to guess which direction the cursor should jump to for the previous/next point, and hence determine which button should be pressed by the user. | ||||
| * | camera.c: refactor cursor_init | Xavier Del Campo Romero | 2022-06-24 | 1 | -4/+15 |
| | | | | | So that uninitialized members are set to 0. | ||||
| * | peripheral: provide common actions | Xavier Del Campo Romero | 2022-06-24 | 6 | -38/+38 |
| | | | | | | | Whereas some actions are context-specific (e.g.: selecting a player), some are context-independent and can be executed for all screens (e.g.: exiting the game). | ||||
| * | camera: remove dependency against terrain | Xavier Del Campo Romero | 2022-06-12 | 6 | -9/+20 |
| | | | | | | This will allow using camera for purposes other than showing the game map. | ||||
| * | Split peripheral-related logic into its own component | Xavier Del Campo Romero | 2022-06-12 | 12 | -78/+164 |
| | | | | | | | | | | | | This has several advantages: - `camera` no longer needs to define public functions for each peripheral type. - Peripheral-related is now no longer tighly coupled to human_player, so peripheral logic can be reused elsewhere e.g.: on menus. - Makes camera_update_touch consistent compared to equivalent functions, since now `pan` has now been moved to `camera` (as it should be). | ||||
| * | sdl-1.2/sound.c: use SDL_WasInit | Xavier Del Campo Romero | 2022-06-11 | 1 | -4/+2 |
| | | |||||
| * | sdl-1.2: return to original dimensions on fullscreen exit | Xavier Del Campo Romero | 2022-06-11 | 1 | -3/+8 |
| | | |||||
| * | Implement button component | Xavier Del Campo Romero | 2022-06-11 | 5 | -1/+169 |
| | | |||||
| * | pad/CMakeLists.txt: add missing call to target_link_libraries() | Xavier Del Campo Romero | 2022-06-08 | 1 | -0/+1 |
| | | |||||
| * | Make gfx_draw return int | Xavier Del Campo Romero | 2022-05-24 | 4 | -4/+11 |
| | | |||||
| * | Use realloc(3) directly | Xavier Del Campo Romero | 2022-05-24 | 1 | -7/+1 |
| | | | | | It is simply not true realloc(3) cannot be used with NULL pointers. | ||||
| * | font.c: avoid several va_list in favor of large buffer | Xavier Del Campo Romero | 2022-05-24 | 1 | -32/+6 |
| | | |||||
| * | Allow systems without sound support | Xavier Del Campo Romero | 2022-05-24 | 4 | -11/+32 |
| | | |||||
| * | Remove unused minor stuff | Xavier Del Campo Romero | 2022-03-31 | 2 | -2/+1 |
| | | |||||
| * | resource.c: decouple collbox from sprite dimensions | Xavier Del Campo Romero | 2022-03-31 | 1 | -6/+26 |
| | | |||||
| * | Fix exit condition | Xavier Del Campo Romero | 2022-03-31 | 1 | -1/+1 |
| | | |||||
| * | Implement touch controls | Xavier Del Campo Romero | 2022-03-31 | 9 | -18/+177 |
| | | |||||
| * | Implement sub-tile collboxes | Xavier Del Campo Romero | 2022-03-30 | 9 | -7/+104 |
| | | | | | These will be later used by the pathfinding algorithm. | ||||
| * | Rename MAP_{X|Y} to MAP_{W|H} | Xavier Del Campo Romero | 2022-03-30 | 3 | -8/+8 |
| | | |||||
