Jaidyn Ann
e21d16069b
Translations of menu-items ^_^
2023-06-23 12:54:29 -05:00
Jaidyn Ann
dafccb17a1
Language-specific map layers
2023-06-23 12:41:47 -05:00
Jaidyn Ann
495ed87f09
Baseline support for translations! :D
...
It’s not using gettext or anything, just a simple
system I cooked up for having the translations
hard-coded in, side-by-side.
… it’s easier for me this way when writing, and
it’ll make things easier later on, during
distribution :P
2023-06-23 11:28:34 -05:00
Jaidyn Ann
b617e92aba
Add `move` directive to dialogues — for moving! :D
2023-06-22 19:20:20 -05:00
Jaidyn Ann
c7c0ed6d65
Menu state-function creator: #' 📋 :make-menu-state
2023-06-22 11:31:49 -05:00
Jaidyn Ann
6eb5596263
“Chunk” entities like map tiles
...
Now :entities of the map hash-table is no longer a
flat list of entity plists, but a “chunked” alist
of these entity plists. Each alist is dedicated to
a different “chunk” (screenfull) of the map.
This (hypothetically) makes finding on-screen
entities more speedy.
2023-06-21 23:47:54 -05:00
Jaidyn Ann
666c155f95
Legiblify : 💬 ; finish dialogue-printing with ENTER
...
Like with RPGs!
2023-06-21 20:31:29 -05:00
Jaidyn Ann
fe9b74a600
Vary dialogue-position by speaker/etc
2023-06-20 22:00:36 -05:00
Jaidyn Ann
9c5892f2f8
Orient dialogue vertically! How exciting!
2023-06-20 20:43:27 -05:00
Jaidyn Ann
82254570b1
Orienting dialogue to the left or right of entity
2023-06-20 20:04:13 -05:00
Jaidyn Ann
6467d9bec3
Don’t over-:use packages (hee-hee)
2023-06-19 14:58:12 -05:00
Jaidyn Ann
b8faba4c6a
When printing dialogue, show chars one-at-a-time
...
Y’know, RPG-style! ‘Cause we’re cool kids! c:<
… and this is a real RPG! This is legit!
This is legit! … this is legit… =,w,=
It _will_ be legit!
2023-06-19 14:43:46 -05:00
Jaidyn Ann
95442b39db
Change entity faces while they’re talking
...
What a cool effect ^w^ ^o^ ^w^
2023-06-19 08:47:45 -05:00
Jaidyn Ann
218dcdc465
Start basic dialogue state, etc?
...
This is so bad, I wanna dieee :w:
2023-06-17 22:47:30 -05:00
Jaidyn Ann
6f60c76f4b
Reorder overworld.tiled functions; overworld.util
...
No functional changes.
Re-order functions in overworld.tiled so SBCL
doesn't complain at me.
Split some functions from overworld.tiled into
a new overworld.util package. Also rename the
files in a nice way!
2023-06-17 10:12:23 -05:00
Jaidyn Ann
d664996190
Re-order functions (no functional change)
2023-06-16 20:11:47 -05:00
Jaidyn Ann
3db5cdcdd6
Minor refactoring; add accessors
2023-06-16 20:09:35 -05:00
Jaidyn Ann
b31446c0f1
Interact with nearby entities
2023-06-16 14:28:41 -05:00
Jaidyn Ann
0f512e80ea
Switch MAP to being a hash-table instead of a plist
...
Having MAP be a hash-table makes it a little more
mutable (friendly for a game of this structure.
Because, y’know, we… I’m too lazy to explain this.
Read the code. Which I’m pretty sure is illegible.
Sorry… =w=""""") :w:
>o< cries cries cires criesd
2023-06-16 12:41:19 -05:00
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