Commit Graph

129 Commits

Author SHA1 Message Date
Xavier Del Campo Romero c2e2343054
player: Add missing header
As required by rand(3).
2024-01-30 01:16:04 +01:00
Xavier Del Campo Romero 2d8a171ad5
human_player_gui.c: Rename on_exit to on_btn_exit
Surprisingly, glibc declares on_exit(3) as a non-portable function on
stdlib.h.
2024-01-30 01:13:07 +01:00
Xavier Del Campo Romero da42dfab9f
init.c: Add missing #include
As required by PRIx8.
2024-01-30 01:12:57 +01:00
Xavier Del Campo Romero fd53c7da8c
Big rushed update 2024-01-28 15:17:49 +01:00
Xavier Del Campo Romero e49e3073c6
Add unit sprites 2024-01-28 04:12:46 +01:00
Xavier Del Campo Romero db3ee0d636
terrain: Split tile/object rendering 2024-01-28 04:12:45 +01:00
Xavier Del Campo Romero cd2b58b561
Add btn_small 2024-01-27 17:38:12 +01:00
Xavier Del Campo Romero 27553f8ed1
Remove stale unit and building types 2024-01-27 17:38:12 +01:00
Xavier Del Campo Romero 0f21739551
Define terrain rendering and loading 2024-01-27 17:38:12 +01:00
Xavier Del Campo Romero daf6f84ccd
gfx: Add return value to *_sort functions 2024-01-27 17:38:12 +01:00
Xavier Del Campo Romero 940882d743
Replace "unsigned int" with "unsigned" 2024-01-27 17:38:12 +01:00
Xavier Del Campo Romero b4f904ecdc
Remove hp 2024-01-27 17:38:11 +01:00
Xavier Del Campo Romero 69f753d26f
system: Adjust caption according to PROJECT_NAME 2024-01-27 17:38:11 +01:00
Xavier Del Campo Romero f0c19df495
container.c: Add minor fixes 2024-01-27 17:38:11 +01:00
Xavier Del Campo Romero 6120d66dd0
Add resources 2024-01-27 17:38:11 +01:00
Xavier Del Campo Romero 0aef4f319c
Remove resource, tech and old game resources 2024-01-27 17:38:11 +01:00
Xavier Del Campo Romero b4209ea68c
Rename project 2024-01-26 21:53:15 +01:00
Xavier Del Campo Romero 83aabf0185 Avoid memory leak on failed realloc(3) 2023-04-30 17:08:04 +02:00
Xavier Del Campo Romero c3fbb34a69 wip3 2023-04-07 02:56:36 +02:00
Xavier Del Campo Romero 4da7a3e44d wip2 2022-12-08 17:00:23 +01:00
Xavier Del Campo Romero de3532bd6b Add tests for transport 2022-11-11 00:37:37 +01:00
Xavier Del Campo Romero 9808581861 WIP 2022-11-01 16:26:16 +01:00
Xavier Del Campo Romero 39f50e601d unit.h: remove unused constant MAX_UNIT_DIRECTIONS 2022-09-26 02:25:18 +02:00
Xavier Del Campo Romero e00ed40c9c gui/line_edit: Allow setting input filters 2022-09-26 02:24:46 +02:00
Xavier Del Campo Romero f5c7e88b26 Swap U offset for idle/pressed cursor sprites
Since the cursor is mostly idle, it makes sense to set its sprite as
the default.
2022-09-26 02:23:23 +02:00
Xavier Del Campo Romero 04415b025e net: Relocate source files for consistency 2022-09-24 06:42:02 +02:00
Xavier Del Campo Romero 11a12ad316 net.h: Add missing extern "C" 2022-09-23 04:39:36 +02:00
Xavier Del Campo Romero a735c86cc1 input.c: do not fail on input_render
Implementation is still incomplete, and should not crash the
application.
2022-09-23 04:38:33 +02:00
Xavier Del Campo Romero 2672a69976 join_menu.c: Update serial/IPv4 GUI menus 2022-09-23 04:38:33 +02:00
Xavier Del Campo Romero 33a99a31c7 ps1/net.c: return 0 on net_init
Even if the implementation is not finished yet, this will avoid the
program from crashing on startup.
2022-09-23 04:38:33 +02:00
Xavier Del Campo Romero 14731f0eaa net: Implement net_available 2022-09-23 04:38:33 +02:00
Xavier Del Campo Romero c6be6d0c97 net: Implement net_serial_devices
This function provides a platform-specific list of serial devices that
can be accessed.
2022-09-23 04:38:20 +02:00
Xavier Del Campo Romero 04a526f92a keyboard: Add KEYBOARD_KEY_SLASH 2022-09-23 04:20:57 +02:00
Xavier Del Campo Romero 0a50df4a55 label.c: Set empty text by default
This will avoid crashing the application on rendering due to
uninitialized labels.
2022-09-23 04:20:13 +02:00
Xavier Del Campo Romero 010f139034 gui.c: Remove unneeded condition
Even if neither hcentered or vcentered are used, GUI element position
must be determined by that of its parents.
2022-09-23 04:18:20 +02:00
Xavier Del Campo Romero c5fd231f52 gui.c: Fix minor const-correctness issues 2022-09-23 04:17:44 +02:00
Xavier Del Campo Romero 9a1b545e66 gui: Allow elements to be hidden
When a GUI element is hidden, no rendering or updating is done to it or
its children. This can be useful to define a complex GUI tree structure
that changes under specific conditions, without redefining it.
2022-09-23 04:15:55 +02:00
Xavier Del Campo Romero 06b1a3c58d gfx: Provide functions for fullscreen handling 2022-09-23 04:12:56 +02:00
Xavier Del Campo Romero 0666c70c48 Implement checkbox GUI element 2022-09-23 04:12:07 +02:00
Xavier Del Campo Romero 22e89e8a40 net: Group events into struct 2022-09-21 18:27:58 +02:00
Xavier Del Campo Romero 8fd167bebf gui: fix wrong logic on update/render/deinit
The older implementation caused some elements to be
update/rendered/deinitialized more than once per call. For example,
considering the following tree of GUI elements:

A
    B
    C
        D
    E

The older implementation would update/render/deinitialize C and E more
than once, as shown below:

Update A
Update B
Update C
Update D
Update E
Update C

This was because a GUI element was acting on its siblings, but the
siblings would also act on theirs, causing the extra calls.

OTOH, as an additional improvement, no nested call is now required for
siblings.
2022-09-21 18:14:44 +02:00
Xavier Del Campo Romero d9851c5e78 menu: Implement join_menu 2022-09-20 17:34:25 +02:00
Xavier Del Campo Romero 6b54e9be32 Implement GUI line edit 2022-09-20 17:34:25 +02:00
Xavier Del Campo Romero 6867fb76c1 gui: Implement gui_deinit 2022-09-20 17:34:25 +02:00
Xavier Del Campo Romero 635d950efd Implement net component 2022-09-20 17:34:21 +02:00
Xavier Del Campo Romero 87b4ef3a15 Remap calls to pad/mouse/keyboard to input 2022-09-20 16:56:30 +02:00
Xavier Del Campo Romero 14df82ee4d Implement input component
It is required to redirect keyboard input (both physical or not) when
a GUI line edit is focused. This means other components cannot be
activated on key presses.

Therefore, this new component is meant as a higher-level abstraction
compared to the `keyboard`/`pad`/`mouse` components, which:

- Implements the same APIs provided by `keyboard`, `mouse` and `pad`.
- Returns the same results as the APIs above if no GUI element is
focused, no input otherwise.

Note: replacing calls to `keyboard`/`pad`/`mouse` with `input` will be
implemented in a future commit.
2022-09-20 13:52:14 +02:00
Xavier Del Campo Romero a01b22de74 keyboard: Add new public functions
These will be used by future commits.
2022-09-20 13:52:14 +02:00
Xavier Del Campo Romero ee37be47b9 Minor code style fixes 2022-09-20 13:51:08 +02:00
Xavier Del Campo Romero 244ddd07c1 sdl-1.2: Remap missing keyboard keys 2022-09-20 12:30:06 +02:00