Commit Graph

155 Commits

Author SHA1 Message Date
Xavier Del Campo Romero c5f04adaea
wip3 2023-04-07 02:56:36 +02:00
Xavier Del Campo Romero 850ed93367
wip2 2022-12-08 17:00:23 +01:00
Xavier Del Campo Romero 02febc7367
Add tests for transport 2022-11-11 00:37:37 +01:00
Xavier Del Campo Romero 9e1f1069cc
WIP 2022-11-01 16:26:16 +01:00
Xavier Del Campo Romero 28d624a7b8 unit.h: remove unused constant MAX_UNIT_DIRECTIONS 2022-09-26 02:25:18 +02:00
Xavier Del Campo Romero b79ccb900a gui/line_edit: Allow setting input filters 2022-09-26 02:24:46 +02:00
Xavier Del Campo Romero 98aa3ceb13 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 bd3e8f39a7 BUILD-win9x.md: Use -Os for third-party libraries 2022-09-26 02:21:16 +02:00
Xavier Del Campo Romero cc1278e0b6 net: Relocate source files for consistency 2022-09-24 06:42:02 +02:00
Xavier Del Campo Romero b4c08b585c net.h: Add missing extern "C" 2022-09-23 04:39:36 +02:00
Xavier Del Campo Romero e6ae88aa87 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 eed4687120 join_menu.c: Update serial/IPv4 GUI menus 2022-09-23 04:38:33 +02:00
Xavier Del Campo Romero 6f5058c584 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 8435b3f5fd net: Implement net_available 2022-09-23 04:38:33 +02:00
Xavier Del Campo Romero b108afb6e7 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 26692e8cb9 keyboard: Add KEYBOARD_KEY_SLASH 2022-09-23 04:20:57 +02:00
Xavier Del Campo Romero f8c74babda 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 9e308d97d9 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 68ccd085fc gui.c: Fix minor const-correctness issues 2022-09-23 04:17:44 +02:00
Xavier Del Campo Romero d989dc6f49 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 d0089e7ddf gfx: Provide functions for fullscreen handling 2022-09-23 04:12:56 +02:00
Xavier Del Campo Romero 9d3e754f36 Implement checkbox GUI element 2022-09-23 04:12:07 +02:00
Xavier Del Campo Romero 467f09e952 net: Group events into struct 2022-09-21 18:27:58 +02:00
Xavier Del Campo Romero 85d4af0266 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 3eef29c327 menu: Implement join_menu 2022-09-20 17:34:25 +02:00
Xavier Del Campo Romero 8f9737b776 Implement GUI line edit 2022-09-20 17:34:25 +02:00
Xavier Del Campo Romero e3356fde2d gui: Implement gui_deinit 2022-09-20 17:34:25 +02:00
Xavier Del Campo Romero 84c834c000 Implement net component 2022-09-20 17:34:21 +02:00
Xavier Del Campo Romero f42f5f69c8 Implement FindENET.cmake
This library will be later used for networking over UDP/IPv4 in future
commits.
2022-09-20 17:22:45 +02:00
Xavier Del Campo Romero 4c5630b0d4 Remap calls to pad/mouse/keyboard to input 2022-09-20 16:56:30 +02:00
Xavier Del Campo Romero 684587a3c3 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 b8d3eff412 keyboard: Add new public functions
These will be used by future commits.
2022-09-20 13:52:14 +02:00
Xavier Del Campo Romero 39dc70c385 orig/LICENSE: Minor changes 2022-09-20 13:52:12 +02:00
Xavier Del Campo Romero ade4a509e9 Minor code style fixes 2022-09-20 13:51:08 +02:00
Xavier Del Campo Romero a3f167ee04 sdl-1.2: Remap missing keyboard keys 2022-09-20 12:30:06 +02:00
Xavier Del Campo Romero 481a312e76 keyboard_key.h: add more keys 2022-09-20 12:29:45 +02:00
Xavier Del Campo Romero b8def012d5 sdl-1.2: Remap SDLK_ESCAPE to KEYBOARD_KEY_ESC 2022-09-16 20:35:04 +02:00
Xavier Del Campo Romero 76a49ba3d5 mouse.c: Reduce threshold 2022-09-16 20:33:39 +02:00
Xavier Del Campo Romero da22c8d922 Split CMakeLists.txt for src 2022-09-16 20:29:47 +02:00
Xavier Del Campo Romero 7bc21417c5 Split res-related CMake functions into their own file 2022-09-16 14:28:53 +02:00
Xavier Del Campo Romero a30aee8b90 CMakeLists.txt: bump minimum CMake version 2022-09-16 14:27:18 +02:00
Xavier Del Campo Romero 5829ef82c4 Use find_package for SDL libraries
CMake already distributes FindSDL*.cmake files for SDL and SDL_mixer,
which support custom prefixes via environment variables, removing the
need for ad-hoc logic in Win9x builds.

Also, according to FindSDL.cmake, #include <SDL.h> is the preferred way
for portability reasons, instead of #include <SDL/SDL.h>, which is the
option that has been used so far.
2022-07-23 04:23:05 +02:00
Xavier Del Campo Romero 37ee2c11f3 ps1.cmake: import PSXSDK using find_package 2022-07-23 04:23:05 +02:00
Xavier Del Campo Romero 538a03f160 README.md: Update documentation for Win9x builds 2022-07-23 04:23:05 +02:00
Xavier Del Campo Romero f9e46c950f ps1: Use exported target PSXSDK::PSXSDK 2022-07-23 04:23:05 +02:00
Xavier Del Campo Romero 127a21a34f Implement FindPSXSDK.cmake 2022-07-23 04:23:05 +02:00
Xavier Del Campo Romero 8f3403dffa Update FindSDL_gfx.cmake as of today's upstream
Ongoing PR:
https://gitlab.kitware.com/cmake/cmake/-/merge_requests/7475
2022-07-23 04:23:05 +02:00
Xavier Del Campo Romero c37cd892a0 system/CMakeLists.txt: group common private dependencies into var 2022-07-23 04:23:05 +02:00
Xavier Del Campo Romero 79c0164c21 Create cdroot directory on common CMakeLists.txt 2022-07-23 04:23:05 +02:00
Xavier Del Campo Romero 7a6f5cd2e6 README.md: Document dependencies for Ubuntu builds 2022-07-23 04:16:57 +02:00