···11+#ifndef __kf_ui__
22+#define __kf_ui__
33+44+#include <keraforge/input.h>
55+66+struct kf_uiconfig
77+{
88+ kf_inputbind_t select, cancel, up, down;
99+ char *fmt, *selectfmt;
1010+ int fontsize;
1111+ Color bg, fg;
1212+ int panelheight;
1313+ int xpadding, ypadding;
1414+};
1515+1616+struct kf_uiconfig *kf_ui_getconfig(void);
1717+1818+int kf_ui_panel(char *title);
1919+2020+int kf_ui_choice(char *title, char **choices, int nchoices, int *choice);
2121+int kf_ui_yesno(char *title, int *choice);
2222+int kf_ui_textinput(char *title, char *text);
2323+2424+#endif
+47
license
···11+=== Keraforge - BSD 3-Clause ===
22+33+Copyright 2025 Emmeline Coats
44+55+Redistribution and use in source and binary forms, with or without
66+modification, are permitted provided that the following conditions are met:
77+88+1. Redistributions of source code must retain the above copyright notice, this
99+ list of conditions and the following disclaimer.
1010+1111+2. Redistributions in binary form must reproduce the above copyright notice,
1212+ this list of conditions and the following disclaimer in the documentation
1313+ and/or other materials provided with the distribution.
1414+1515+3. Neither the name of the copyright holder nor the names of its contributors
1616+ may be used to endorse or promote products derived from this software
1717+ without specific prior written permission.
1818+1919+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND
2020+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
2121+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
2222+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
2323+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
2424+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
2525+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
2626+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
2727+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
2828+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2929+3030+=== Raylib - zlib ===
3131+3232+Copyright (c) 2013-2025 Ramon Santamaria (@raysan5)
3333+3434+This software is provided "as-is", without any express or implied warranty. In no event
3535+will the authors be held liable for any damages arising from the use of this software.
3636+3737+Permission is granted to anyone to use this software for any purpose, including commercial
3838+applications, and to alter it and redistribute it freely, subject to the following restrictions:
3939+4040+1. The origin of this software must not be misrepresented; you must not claim that you
4141+ wrote the original software. If you use this software in a product, an acknowledgment
4242+ in the product documentation would be appreciated but is not required.
4343+4444+2. Altered source versions must be plainly marked as such, and must not be misrepresented
4545+ as being the original software.
4646+4747+3. This notice may not be removed or altered from any source distribution.
+66
readme
···11+22+Keraforge
33+=========
44+55+A game engine for top-down 2D RPG games.
66+77+[Warning]
88+Keraforge is still a work-in-progress. Expect breaking
99+changes!
1010+1111+Motive
1212+------
1313+1414+ There's already a large number of quality game engines
1515+and frameworks in the wild, so what does Keraforge do
1616+differently?
1717+1818+ Design:
1919+ Keraforge is designed with a specific kind of game in
2020+ mind: top-down, story-driven, handcrafted RPGs. If your
2121+ dream game fits in this category, then Keraforge aims to
2222+ help make it a reality.
2323+2424+ Simplicity:
2525+ Game engines and frameworks always have a learning
2626+ curve. Keraforge is no exception. What I can aim for,
2727+ though, is keep the learning curve from being exponential
2828+ and overwhelming users. I want Keraforge to allow anyone
2929+ to share their story with an engine that gives them the
3030+ ability to pour love into their work.
3131+3232+ Cost:
3333+ Keraforge is 100% free (BSD 3-Clause), zero royalties,
3434+ no up-front costs, and no paywalls. I want to give people
3535+ the chance to create something beautiful, not to take
3636+ their money.
3737+3838+ It's also important to discuss the cons of Keraforge.
3939+It's going to be fundamentally different from any other
4040+engine since it's made for a very specific style of game.
4141+This means that if your game does not fit this style, you
4242+might have more trouble.
4343+4444+Usage
4545+-----
4646+4747+ Pre-built binaries are not *yet* distributed. I'll start
4848+publishing binaries once the engine reaches a stable state.
4949+For now, you can compile it yourself. See the section on
5050+development below.
5151+5252+ If you want to see my development progress, see <todo>.
5353+5454+Develop
5555+-------
5656+5757+ Build "system" is contained in a folder of shell scripts,
5858+`scripts`. You can run these with the `run.sh` script to
5959+run multiple tasks in order. Generally:
6060+ `sh run.sh build run`
6161+is all you'll need to run while developing.
6262+6363+License
6464+-------
6565+6666+BSD 3-Clause, see <license>.