2023-06-28 10:15:23 -05:00
|
|
|
|
;;;; Copyright © 2023, Jaidyn Ann <jadedctrl@posteo.at>
|
|
|
|
|
;;;;
|
|
|
|
|
;;;; This program is free software: you can redistribute it and/or
|
|
|
|
|
;;;; modify it under the terms of the GNU General Public License as
|
|
|
|
|
;;;; published by the Free Software Foundation, either version 3 of
|
|
|
|
|
;;;; the License, or (at your option) any later version.
|
|
|
|
|
;;;;
|
|
|
|
|
;;;; This program is distributed in the hope that it will be useful,
|
|
|
|
|
;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
|
;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
|
;;;; GNU General Public License for more details.
|
|
|
|
|
;;;;
|
|
|
|
|
;;;; You should have received a copy of the GNU General Public License
|
|
|
|
|
;;;; along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
|
|
|
|
|
|
;;;; This contains package definitions for Flora Serĉ’ Kolora.
|
|
|
|
|
|
|
|
|
|
(defpackage :flora-search-aurora.util
|
|
|
|
|
(:nicknames :fsa.utl :util :…)
|
2023-06-30 13:48:17 -05:00
|
|
|
|
(:use :cl)
|
2023-07-01 12:50:24 -05:00
|
|
|
|
(:export #:linewrap-string #:fit-lines
|
2023-06-28 10:15:23 -05:00
|
|
|
|
#:plist=
|
|
|
|
|
#:incf-0
|
|
|
|
|
#:at-least #:at-most
|
2023-07-15 05:04:17 -05:00
|
|
|
|
#:remove-from-alistf
|
2023-07-12 18:29:49 -05:00
|
|
|
|
#:string->symbol
|
2023-07-14 08:50:02 -05:00
|
|
|
|
#:system-language #:langcode->keysym #:getf-lang
|
|
|
|
|
:*language*))
|
2023-07-13 22:55:16 -05:00
|
|
|
|
|
2023-06-28 10:15:23 -05:00
|
|
|
|
(defpackage :flora-search-aurora.input
|
|
|
|
|
(:use :cl)
|
|
|
|
|
(:nicknames :fsa.imp :input :⌨)
|
|
|
|
|
(:export #:read-char-plist #:read-gamefied-char-plist
|
|
|
|
|
#:normalize-char-plist #:gameify-char-plist
|
|
|
|
|
#:plist-char-p
|
2023-07-13 02:37:24 -05:00
|
|
|
|
#:pressed-enter-p
|
2023-06-29 15:50:15 -05:00
|
|
|
|
:control :meta :shift
|
|
|
|
|
+qwerty-layout+ +dvorak-layout+
|
|
|
|
|
+arrows-game-layout+ +wasd-game-layout+ +ijkl-game-layout+
|
2023-07-14 08:50:02 -05:00
|
|
|
|
:↑ :← :→ :↓ :↰ :↱ :↲ :↳ :🆗 :❎
|
|
|
|
|
:*keyboard* :*controls*))
|
2023-06-28 10:15:23 -05:00
|
|
|
|
|
|
|
|
|
(defpackage :flora-search-aurora.display
|
2023-07-13 22:55:16 -05:00
|
|
|
|
(:nicknames :fsa.dsp :display :✎)
|
2023-06-28 10:15:23 -05:00
|
|
|
|
(:use :cl)
|
|
|
|
|
(:export #:make-screen-matrix #:print-screen-matrix #:matrix-delta
|
2023-06-30 13:48:17 -05:00
|
|
|
|
#:render-line #:render-string #:render-string-verbatim #:render-string-partially
|
2023-07-01 12:50:24 -05:00
|
|
|
|
#:render-fill-rectangle
|
2023-06-28 10:15:23 -05:00
|
|
|
|
#:hide-cursor #:show-cursor #:clear-screen))
|
|
|
|
|
|
2023-07-02 12:05:29 -05:00
|
|
|
|
(defpackage :flora-search-aurora.menu
|
2023-07-13 22:55:16 -05:00
|
|
|
|
(:nicknames :fsa.mnu :menu :📋)
|
2023-06-30 13:48:17 -05:00
|
|
|
|
(:use :cl)
|
2023-07-13 22:55:16 -05:00
|
|
|
|
(:export #:menu-state #:menu-state-update #:menu-state-draw #:make-menu-function
|
2023-07-03 11:55:09 -05:00
|
|
|
|
#:selected-menu-item
|
2023-06-30 13:48:17 -05:00
|
|
|
|
:label :selection :selected))
|
2023-06-28 10:15:23 -05:00
|
|
|
|
|
2023-07-14 08:50:02 -05:00
|
|
|
|
(defpackage :flora-search-aurora.settings
|
|
|
|
|
(:nicknames :fsa.set :settings :🔧)
|
|
|
|
|
(:use :cl)
|
|
|
|
|
(:export #:make-settings-menu-function #:settings-menu))
|
|
|
|
|
|
|
|
|
|
|
2023-06-28 10:15:23 -05:00
|
|
|
|
(defpackage :flora-search-aurora.dialogue
|
|
|
|
|
(:nicknames :fsa.dia :dialogue :💬)
|
|
|
|
|
(:use :cl)
|
2023-07-15 01:04:58 -05:00
|
|
|
|
(:export #:dialogue-state #:make-dialogue-state #:make-dialogue-function
|
2023-06-28 10:15:23 -05:00
|
|
|
|
#:start-dialogue #:face #:say #:mumble #:move
|
2023-06-29 15:50:15 -05:00
|
|
|
|
:normal-face :talking-face))
|
2023-06-28 10:15:23 -05:00
|
|
|
|
|
|
|
|
|
(defpackage :flora-search-aurora.inventory
|
|
|
|
|
(:nicknames :fsa.inv :inventory :🎒)
|
|
|
|
|
(:use :cl)
|
2023-07-14 08:50:02 -05:00
|
|
|
|
(:export #:inventory-state #:make-inventory-function))
|
2023-06-28 10:15:23 -05:00
|
|
|
|
|
2023-06-30 13:48:17 -05:00
|
|
|
|
(defpackage :flora-search-aurora.intermission
|
|
|
|
|
(:nicknames :fsa.int :intermission :🎭)
|
|
|
|
|
(:use :cl)
|
2023-07-13 02:37:24 -05:00
|
|
|
|
(:export
|
2023-07-15 01:04:58 -05:00
|
|
|
|
:make-intermission-state :make-intermission-function))
|
2023-06-30 13:48:17 -05:00
|
|
|
|
|
2023-06-28 10:15:23 -05:00
|
|
|
|
(defpackage :flora-search-aurora.overworld.util
|
2023-07-14 08:50:02 -05:00
|
|
|
|
(:nicknames :fsa.ovr.… :overworld.util :🌍.…)
|
2023-06-28 10:15:23 -05:00
|
|
|
|
(:use :cl)
|
|
|
|
|
(:export #:coords->symbol #:symbol->coords
|
2023-06-29 15:50:15 -05:00
|
|
|
|
#:world-coords->screen-coords
|
|
|
|
|
#:world-coords-chunk
|
|
|
|
|
#:map->plist #:plist->map
|
2023-07-14 08:50:02 -05:00
|
|
|
|
#:save-map-to-file
|
|
|
|
|
:*language*))
|
2023-06-28 10:15:23 -05:00
|
|
|
|
|
|
|
|
|
(defpackage :flora-search-aurora.overworld
|
2023-07-14 08:50:02 -05:00
|
|
|
|
(:nicknames :fsa.ovr :overworld :🌍)
|
2023-06-28 10:15:23 -05:00
|
|
|
|
(:use :cl
|
|
|
|
|
:flora-search-aurora.overworld.util)
|
2023-07-14 08:50:02 -05:00
|
|
|
|
(:export #:make-overworld-state #:make-overworld-function
|
|
|
|
|
#:overworld-state #:overworld-state-draw
|
2023-06-28 10:15:23 -05:00
|
|
|
|
#:merge-maps
|
|
|
|
|
#:world-coords->screen-coords
|
|
|
|
|
#:getf-entity #:getf-entity-data #:removef-entity
|
2023-07-12 21:54:00 -05:00
|
|
|
|
#:entities-near-entity
|
2023-06-28 10:15:23 -05:00
|
|
|
|
#:aget-item #:getf-act #:getf-know
|
|
|
|
|
#:move-entity-to #:move-entity
|
|
|
|
|
#:plist->map
|
|
|
|
|
:left :right))
|
|
|
|
|
|
|
|
|
|
(defpackage :flora-search-aurora.engine
|
|
|
|
|
(:nicknames :fsa.eng :engine :⚙)
|
|
|
|
|
(:export #:state-loop #:main)
|
|
|
|
|
(:use :cl))
|
|
|
|
|
|
|
|
|
|
(defpackage :flora-search-aurora
|
|
|
|
|
(:nicknames :fsa :✿)
|
|
|
|
|
(:export #:main
|
2023-07-15 05:04:17 -05:00
|
|
|
|
:player :*knows*)
|
2023-06-28 10:15:23 -05:00
|
|
|
|
(:use :cl
|
|
|
|
|
:flora-search-aurora.input :flora-search-aurora.display
|
|
|
|
|
:flora-search-aurora.overworld :flora-search-aurora.dialogue
|
2023-07-02 12:05:29 -05:00
|
|
|
|
:flora-search-aurora.menu))
|
2023-07-15 05:04:17 -05:00
|
|
|
|
|