Commit Graph

84 Enmetoj

Author SHA1 Message Date
Jaidyn Ann c801a2ddfb Run INTERACT function mentioned in Tiled map 2023-06-16 12:16:44 -05:00
Jaidyn Ann c37ce281ea Split Tiled map-parsing into its own subpackage 2023-06-16 09:36:53 -05:00
Jaidyn Ann 11951c28a4 Support for embedding entities in the Tiled map 2023-06-16 09:00:58 -05:00
Jaidyn Ann 9d7961c6ad Parse cl-tiled CELL objects into alists 2023-06-15 18:14:39 -05:00
Jaidyn Ann 53f34b4e17 Non-traversable tiles like walls and such
Yes, now the player must adhere to the laws of
physics! Weird, right? Really wack? Super-weird?
2023-06-15 11:15:46 -05:00
Jaidyn Ann b08577b3db Parse maps with multiple tile-layers 2023-06-14 22:03:55 -05:00
Jaidyn Ann 939a433f32 Better drawing of strange-width NPC/player faces
Now entities (like the player) will be drawn more
evenly, even if their faces are ~~owo~~ WEIRD uwu
2023-06-14 16:36:34 -05:00
Jaidyn Ann f492aa6dba Movement between map-chunks by walking off-screen 2023-06-13 21:16:31 -05:00
Jaidyn Ann 7f77c4b887 Render the map in bits-and-pieces (chunks)
Rather than have several map-files of 72×20 tiles,
now we can have one huge map that's automatically
split into 72×20 chunks.
2023-06-11 17:12:52 -05:00
Jaidyn Ann 987457587b Draw ASCII people instead of mere one-off chars
Isn’t @ worse as a player-character than

[owo]
 ||

?
2023-06-10 15:29:52 -05:00
Jaidyn Ann d7e9d66749 Begin movement and entity support 2023-06-09 23:00:26 -05:00
Jaidyn Ann 32c95c3725 Use state return-values for overworld loop 2023-06-09 20:14:31 -05:00
Jaidyn Ann 8cbd029d6d Add optional “RETURN” pair to menu alists
In case you don't want a menu to return the
function's value when selected — or if you
don't want to have to add a function at all.
2023-06-09 18:22:56 -05:00
Jaidyn Ann 0cfd2deae0 Rename state-loop’s loop functions to “state-functions”
Also document all current state-functions.
2023-06-09 16:17:21 -05:00
Jaidyn Ann 94335468b3 Begin overworld-rendering loop
It draws to the screen, now! Err, well, it has
been able to do that, since my first day on
this project. But until now, there wasn't a
menu leading you there! c:<
2023-06-09 07:07:28 -05:00
Jaidyn Ann 7fe6d2a24d Simplify main function 2023-06-09 06:57:16 -05:00
Jaidyn Ann 21cfca30d2 Create general “state”-system
… by which an individual state's loop can plug
in another superceding loop function. Ex.,
a menu giving way to a sub-menu.
2023-06-08 21:57:51 -05:00
Jaidyn Ann e6e4410a91 Make menu-alist type real alist 2023-06-08 20:31:55 -05:00
Jaidyn Ann 7956aef3e5 Menu items execute functions on RETURN 2023-06-07 21:51:22 -05:00
Jaidyn Ann f06849b710 Implement menu input-loop; changing selection 2023-06-07 19:02:11 -05:00
Jaidyn Ann e59c192888 Support for selection-animations and a menu-format
Now menu reselection/selection can be animated
easily! It'll look super-cool when I get input
working, I swearrr.
2023-06-06 23:27:30 -05:00
Jaidyn Ann ee8b68033d Start of UI state-loop: Displaying and updating menus 2023-06-06 15:59:31 -05:00
Jaidyn Ann b6c8805027 Allow partial-selection/highlighting of menu item
This will lay the base for selection-change
animation later on!
2023-06-06 00:07:47 -05:00
Jaidyn Ann 99ba134be5 Basic horizontal menu-rendering for UI 2023-06-05 23:28:03 -05:00
Jaidyn Ann 7142cf4667 Start UI: Line-wrapping string printing 2023-06-04 12:52:18 -05:00
Jaidyn Ann 50bdc5fe5c Split into packages; no functional change 2023-06-04 04:04:34 -05:00
Jaidyn Ann 1f6ebbcfac Basic support for key layouts
Adds a small layer for translating input characters from non-QWERTY
keyboard layouts into their QWERTY counterparts. After all, it's
not the WASD that counts, but the position: ,AOE is just as valid!
2023-06-04 03:35:03 -05:00
Jaidyn Ann 2203f80454 Semantic parsing of input; ncurses for raw input
Yes, ncurses. Look, I caved, okay?!
But in my defense, I couldn't find a simple way to
get raw input in both a framebuffer and an xorg
terminal, so… ncurses can handle the details.
I'm just a dummy, you can't expect me to do
everything!

Well, input is parsed into a somewhat-semantic
format, so at least I did *something* alright.
2023-06-04 02:33:53 -05:00
Jaidyn Ann 25881ca350 Remove source-file copyright header 2023-06-03 22:13:45 -05:00
Jaidyn Ann 6fd48fd2dc Split matrix-loops into separate do-for-cell macro 2023-06-03 22:09:23 -05:00
Jaidyn Ann ce3dcebbb4 On screen refresh, only draw changed characters
The previous method — clearing the screen and
completely redrawing every frame — caused severe
screen-flickering. This is better, calculating the
changed characters per-frame and printing only
those.
2023-06-01 23:18:15 -05:00
Jaidyn Ann 20bc695cdf Simply rename the program! 2023-06-01 00:23:45 -05:00
Jaidyn Ann 9661bfefe0 Proper support for Tiled-based tiling
Before, all tiles were 'a'; now, the right
character gets selected for each!
2023-06-01 00:11:25 -05:00
Jaidyn Ann 7de2dbe941 Init: Basic one-tile map-drawing 2023-05-31 23:04:36 -05:00