Mercurial > molko
changeset 411:d74f53299252
make: add basic GNU make support
line wrap: on
line diff
--- a/.hgignore Fri Sep 09 13:30:34 2022 +0200 +++ b/.hgignore Fri Oct 07 14:35:31 2022 +0200 @@ -1,3 +1,9 @@ +# object files. +\.a$ +\.d$ +\.o$ +assets/.*\.h$ + # CMake files. ^build @@ -14,9 +20,11 @@ # macOS specific. \.DS_Store$ +\.dSYM # Generated files. \.exe$ +^config\.h$ ^mlk- ^example- ^src/libmlk-data/maps/.*\.map$
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/GNUmakefile Fri Oct 07 14:35:31 2022 +0200 @@ -0,0 +1,349 @@ +-include config.mk + +# Toolchain options. +CC ?= clang +CFLAGS ?= -g -O0 +BCC ?= bcc +BCC_OPTS ?= -cs +MD ?= -MD + +# User options. +WITH_ZIP := yes +WITH_ZSTD := yes +WITH_DEBUG := no + +OS := $(shell uname -s) + +SDL2_INCS ?= $(shell pkg-config --cflags sdl2) +SDL2_LIBS ?= $(shell pkg-config --libs sdl2) + +SDL2_IMAGE_INCS ?= $(shell pkg-config --cflags SDL2_image) +SDL2_IMAGE_LIBS ?= $(shell pkg-config --libs SDL2_image) + +SDL2_TTF_INCS ?= $(shell pkg-config --cflags SDL2_ttf) +SDL2_TTF_LIBS ?= $(shell pkg-config --libs SDL2_ttf) + +SNDFILE_INCS ?= $(shell pkg-config --cflags sndfile) +SNDFILE_LIBS ?= $(shell pkg-config --libs sndfile) + +ifeq ($(WITH_ZSTD),yes) +ZSTD_INCS ?= $(shell pkg-config --cflags libzstd) +ZSTD_LIBS ?= $(shell pkg-config --libs libzstd) +endif + +ifeq ($(WITH_ZIP),yes) +LIBZIP_INCS ?= $(shell pkg-config --cflags libzip) +LIBZIP_LIBS ?= $(shell pkg-config --libs libzip) +endif + +ifeq ($(OS),Darwin) +OPENAL_LIBS ?= -framework OpenAL +else +OPENAL_INCS ?= $(shell pkg-config --cflags openal) +OPENAL_LIBS ?= $(shell pkg-config --libs openal) +endif + +# Global INCS, OPTS and DEFS for every targets. +INCS := -Iextern/libdt \ + -Iextern/libsqlite \ + -Isrc/libmlk-port \ + -Isrc/libmlk-core \ + -Isrc/libmlk-ui \ + -Isrc/libmlk-rpg \ + -I. \ + $(SDL2_INCS) \ + $(SDL2_IMAGE_INCS) \ + $(SDL2_TTF_INCS) \ + $(SNDFILE_INCS) + +ifeq ($(WITH_ZSTD),yes) +INCS += $(ZSTD_INCS) +endif + +ifeq ($(WITH_ZIP),yes) +INCS += $(ZIP_INCS) +endif + +OPTS := -Wall -Wextra -pipe + +ifeq ($(OS),Darwin) +OPTS += -Wno-deprecated-declarations +endif + +ifeq ($(WITH_DEBUG),yes) +OPTS += -g -O0 +else +OPTS += -DNDEBUG -O3 +endif + +.DEFAULT_GOAL := all + +.SUFFIXES: +.SUFFIXES: .c .h .o .sql .ttf + +.c.o: + $(CC) $(OPTS) $(INCS) $(DEFS) $(CFLAGS) $(MD) -c $< -o $@ + +.c: + $(CC) $(OPTS) $(INCS) $(DEFS) $(CFLAGS) $< -o $@ $(LIBS) $(LDFLAGS) + +.ttf.h .sql.h: + $(BCC) $(BCC_OPTS) $< assets_$(basename $(<F)) > $@ + +%.a: + $(AR) -rc $@ $(OBJS) + +# {{{ config.h + +config.h: + rm -f config.h + touch config.h +ifeq ($(WITH_ZSTD),yes) + echo "#define MLK_WITH_ZSTD" >> config.h +endif +ifeq ($(WITH_ZIP),yes) + echo "#define MLK_WITH_ZIP" >> config.h +endif + +# }}} + +# {{{ libmlk-port + +LIBMLK_PORT := libmlk-port.a +LIBMLK_PORT_SRCS := src/libmlk-port/port/basename.c \ + src/libmlk-port/port/dirname.c \ + src/libmlk-port/port/fmemopen.c \ + src/libmlk-port/port/getopt.c \ + src/libmlk-port/port/strlcat.c \ + src/libmlk-port/port/strlcpy.c +LIBMLK_PORT_OBJS := $(LIBMLK_PORT_SRCS:.c=.o) +LIBMLK_PORT_DEPS := $(LIBMLK_PORT_SRCS:.c=.d) + +-include $(LIBMLK_PORT_DEPS) + +$(LIBMLK_PORT): INCS := +$(LIBMLK_PORT): OBJS := $(LIBMLK_PORT_OBJS) +$(LIBMLK_PORT): $(LIBMLK_PORT_OBJS) + +all: $(LIBMLK_PORT) + +# }}} + +# {{{ libmlk-sqlite + +LIBMLK_SQLITE := libmlk-sqlite.a +LIBMLK_SQLITE_SRCS := extern/libsqlite/sqlite3.c +LIBMLK_SQLITE_OBJS := $(LIBMLK_SQLITE_SRCS:.c=.o) +LIBMLK_SQLITE_DEPS := $(LIBMLK_SQLITE_SRCS:.c=.d) + +-include $(LIBMLK_SQLITE_DEPS) + +$(LIBMLK_SQLITE): INCS := +$(LIBMLK_SQLITE): OBJS := $(LIBMLK_SQLITE_OBJS) +$(LIBMLK_SQLITE): $(LIBMLK_SQLITE_OBJS) + +all: $(LIBMLK_SQLITE) + +# }}} + +# {{{ libmlk-core + +LIBMLK_CORE := libmlk-core.a +LIBMLK_CORE_SRCS := src/libmlk-core/core/action-stack.c \ + src/libmlk-core/core/action.c \ + src/libmlk-core/core/alloc.c \ + src/libmlk-core/core/animation.c \ + src/libmlk-core/core/buf.c \ + src/libmlk-core/core/clock.c \ + src/libmlk-core/core/core.c \ + src/libmlk-core/core/drawable-stack.c \ + src/libmlk-core/core/drawable.c \ + src/libmlk-core/core/error.c \ + src/libmlk-core/core/event.c \ + src/libmlk-core/core/font.c \ + src/libmlk-core/core/game.c \ + src/libmlk-core/core/image.c \ + src/libmlk-core/core/maths.c \ + src/libmlk-core/core/music.c \ + src/libmlk-core/core/painter.c \ + src/libmlk-core/core/panic.c \ + src/libmlk-core/core/script.c \ + src/libmlk-core/core/sound.c \ + src/libmlk-core/core/sprite.c \ + src/libmlk-core/core/state.c \ + src/libmlk-core/core/sys.c \ + src/libmlk-core/core/texture.c \ + src/libmlk-core/core/trace.c \ + src/libmlk-core/core/util.c \ + src/libmlk-core/core/vfs-directory.c \ + src/libmlk-core/core/vfs-zip.c \ + src/libmlk-core/core/vfs.c \ + src/libmlk-core/core/window.c \ + src/libmlk-core/core/zfile.c +LIBMLK_CORE_OBJS := $(LIBMLK_CORE_SRCS:.c=.o) +LIBMLK_CORE_DEPS := $(LIBMLK_CORE_SRCS:.c=.d) + +-include $(LIBMLK_CORE_DEPS) + +$(LIBMLK_CORE_OBJS): config.h +$(LIBMLK_CORE): OBJS := $(LIBMLK_CORE_OBJS) +$(LIBMLK_CORE): $(LIBMLK_CORE_OBJS) + +all: $(LIBMLK_CORE) + +# }}} + +# {{{ libmlk-ui + +LIBMLK_UI := libmlk-ui.a +LIBMLK_UI_SRCS := src/libmlk-ui/ui/align.c \ + src/libmlk-ui/ui/button.c \ + src/libmlk-ui/ui/checkbox.c \ + src/libmlk-ui/ui/debug.c \ + src/libmlk-ui/ui/frame.c \ + src/libmlk-ui/ui/gridmenu.c \ + src/libmlk-ui/ui/label.c \ + src/libmlk-ui/ui/notify.c \ + src/libmlk-ui/ui/theme.c \ + src/libmlk-ui/ui/ui.c + +LIBMLK_UI_OBJS := $(LIBMLK_UI_SRCS:.c=.o) +LIBMLK_UI_DEPS := $(LIBMLK_UI_SRCS:.c=.d) +LIBMLK_UI_DATA_SRCS := src/libmlk-ui/assets/fonts/opensans-light.ttf \ + src/libmlk-ui/assets/fonts/opensans-medium.ttf \ + src/libmlk-ui/assets/fonts/opensans-regular.ttf +LIBMLK_UI_DATA_OBJS := $(addsuffix .h,$(basename $(LIBMLK_UI_DATA_SRCS))) + +$(LIBMLK_UI_OBJS): $(LIBMLK_UI_DATA_OBJS) +$(LIBMLK_UI): $(LIBMLK_UI_OBJS) +$(LIBMLK_UI): OBJS := $(LIBMLK_UI_OBJS) + +all: $(LIBMLK_UI) + +# }}} + +# {{{ libmlk-rpg + +LIBMLK_RPG := libmlk-rpg.a +LIBMLK_RPG_SRCS := src/libmlk-rpg/rpg/battle-bar-default.c \ + src/libmlk-rpg/rpg/battle-bar.c \ + src/libmlk-rpg/rpg/battle-entity-state-attacking.c \ + src/libmlk-rpg/rpg/battle-entity-state-blinking.c \ + src/libmlk-rpg/rpg/battle-entity-state-moving.c \ + src/libmlk-rpg/rpg/battle-entity-state-normal.c \ + src/libmlk-rpg/rpg/battle-entity-state.c \ + src/libmlk-rpg/rpg/battle-entity.c \ + src/libmlk-rpg/rpg/battle-indicator.c \ + src/libmlk-rpg/rpg/battle-message.c \ + src/libmlk-rpg/rpg/battle-state-ai.c \ + src/libmlk-rpg/rpg/battle-state-attacking.c \ + src/libmlk-rpg/rpg/battle-state-check.c \ + src/libmlk-rpg/rpg/battle-state-closing.c \ + src/libmlk-rpg/rpg/battle-state-item.c \ + src/libmlk-rpg/rpg/battle-state-lost.c \ + src/libmlk-rpg/rpg/battle-state-menu.c \ + src/libmlk-rpg/rpg/battle-state-opening.c \ + src/libmlk-rpg/rpg/battle-state-rendering.c \ + src/libmlk-rpg/rpg/battle-state-selection.c \ + src/libmlk-rpg/rpg/battle-state-victory.c \ + src/libmlk-rpg/rpg/battle-state.c \ + src/libmlk-rpg/rpg/battle.c \ + src/libmlk-rpg/rpg/character.c \ + src/libmlk-rpg/rpg/equipment.c \ + src/libmlk-rpg/rpg/inventory.c \ + src/libmlk-rpg/rpg/item.c \ + src/libmlk-rpg/rpg/map-file.c \ + src/libmlk-rpg/rpg/map.c \ + src/libmlk-rpg/rpg/message.c \ + src/libmlk-rpg/rpg/property.c \ + src/libmlk-rpg/rpg/quest.c \ + src/libmlk-rpg/rpg/rpg.c \ + src/libmlk-rpg/rpg/save.c \ + src/libmlk-rpg/rpg/selection.c \ + src/libmlk-rpg/rpg/spell.c \ + src/libmlk-rpg/rpg/team.c \ + src/libmlk-rpg/rpg/tileset-file.c \ + src/libmlk-rpg/rpg/tileset.c \ + src/libmlk-rpg/rpg/walksprite.c + +LIBMLK_RPG_OBJS := $(LIBMLK_RPG_SRCS:.c=.o) +LIBMLK_RPG_DEPS := $(LIBMLK_RPG_SRCS:.c=.d) +LIBMLK_RPG_DATA_SRCS := src/libmlk-rpg/assets/sql/character-load.sql \ + src/libmlk-rpg/assets/sql/character-save.sql \ + src/libmlk-rpg/assets/sql/init.sql \ + src/libmlk-rpg/assets/sql/property-load.sql \ + src/libmlk-rpg/assets/sql/property-remove.sql \ + src/libmlk-rpg/assets/sql/property-save.sql \ + src/libmlk-rpg/assets/sql/quest-remove.sql \ + src/libmlk-rpg/assets/sql/quest-save.sql \ + src/libmlk-rpg/assets/sql/quest-step-load.sql \ + src/libmlk-rpg/assets/sql/quest-step-save.sql +LIBMLK_RPG_DATA_OBJS := $(addsuffix .h,$(basename $(LIBMLK_RPG_DATA_SRCS))) + +$(LIBMLK_RPG_DATA_OBJS): BCC_OPTS := -cs0 +$(LIBMLK_RPG_OBJS): $(LIBMLK_RPG_DATA_OBJS) +$(LIBMLK_RPG): $(LIBMLK_RPG_OBJS) +$(LIBMLK_RPG): OBJS := $(LIBMLK_RPG_OBJS) + +all: $(LIBMLK_RPG) + +# }}} + +# Meta variable that contains all libraries, used for executables and tests. +LIBMLK := $(LIBMLK_RPG) \ + $(LIBMLK_UI) \ + $(LIBMLK_CORE) \ + $(LIBMLK_PORT) \ + $(LIBMLK_SQLITE) \ + $(SDL2_LIBS) \ + $(SDL2_IMAGE_LIBS) \ + $(SDL2_TTF_LIBS) \ + $(OPENAL_LIBS) \ + $(SNDFILE_LIBS) + +ifeq ($(WITH_ZSTD),yes) +LIBMLK += $(ZSTD_LIBS) +endif + +ifeq ($(WITH_ZIP),yes) +LIBMLK += $(LIBZIP_LIBS) +endif + +TESTS := tests/test-action-script.c \ + tests/test-action.c \ + tests/test-alloc.c \ + tests/test-character.c \ + tests/test-color.c \ + tests/test-drawable.c \ + tests/test-error.c \ + tests/test-map.c \ + tests/test-save-quest.c \ + tests/test-save.c \ + tests/test-state.c \ + tests/test-tileset.c \ + tests/test-util.c \ + tests/test-vfs-directory.c \ + +ifeq ($(WITH_ZIP),yes) +TESTS += tests/test-vfs-zip.c +endif + +TESTS_EXE := $(TESTS:.c=) + +$(TESTS_EXE): private LIBS += $(LIBMLK) +$(TESTS_EXE): private DEFS += -DDIRECTORY=\"$(CURDIR)/tests/assets\" +$(TESTS_EXE): $(LIBMLK_RPG) $(LIBMLK_UI) $(LIBMLK_CORE) $(LIBMLK_PORT) $(LIBMLK_SQLITE) + +tests: $(TESTS_EXE) + for t in $(TESTS_EXE); do ./$$t; done + +clean: + rm -f config.h + rm -f $(LIBMLK_SQLITE) $(LIBMLK_SQLITE_DEPS) $(LIBMLK_SQLITE_OBJS) + rm -f $(LIBMLK_PORT) $(LIBMLK_PORT_DEPS) $(LIBMLK_PORT_OBJS) + rm -f $(LIBMLK_CORE) $(LIBMLK_CORE_DEPS) $(LIBMLK_CORE_OBJS) + rm -f $(LIBMLK_UI) $(LIBMLK_UI_DEPS) $(LIBMLK_UI_OBJS) $(LIBMLK_UI_DATA_OBJS) + rm -f $(LIBMLK_RPG) $(LIBMLK_RPG_DEPS) $(LIBMLK_RPG_OBJS) $(LIBMLK_RPG_DATA_OBJS) + rm -f $(TESTS_EXE) + +.PHONY: all clean tests
--- a/src/libmlk-core/CMakeLists.txt Fri Sep 09 13:30:34 2022 +0200 +++ b/src/libmlk-core/CMakeLists.txt Fri Oct 07 14:35:31 2022 +0200 @@ -35,7 +35,6 @@ ${libmlk-core_SOURCE_DIR}/core/color.h ${libmlk-core_SOURCE_DIR}/core/core.c ${libmlk-core_SOURCE_DIR}/core/core.h - ${libmlk-core_SOURCE_DIR}/core/core_p.h ${libmlk-core_SOURCE_DIR}/core/drawable.c ${libmlk-core_SOURCE_DIR}/core/drawable.h ${libmlk-core_SOURCE_DIR}/core/drawable-stack.c @@ -77,8 +76,6 @@ ${libmlk-core_SOURCE_DIR}/core/texture_p.h ${libmlk-core_SOURCE_DIR}/core/trace.c ${libmlk-core_SOURCE_DIR}/core/trace.h - ${libmlk-core_SOURCE_DIR}/core/translate.c - ${libmlk-core_SOURCE_DIR}/core/translate.h ${libmlk-core_SOURCE_DIR}/core/util.c ${libmlk-core_SOURCE_DIR}/core/util.h ${libmlk-core_SOURCE_DIR}/core/vfs-directory.c
--- a/src/libmlk-core/core/core.c Fri Sep 09 13:30:34 2022 +0200 +++ b/src/libmlk-core/core/core.c Fri Oct 07 14:35:31 2022 +0200 @@ -23,7 +23,6 @@ #include "core.h" #include "sys.h" -#include "translate.h" int core_init(const char *organization, const char *name) @@ -36,8 +35,6 @@ if (sys_init(organization, name) < 0) return -1; - translate_init("libmlk-core"); - return 0; }
--- a/src/libmlk-core/core/core.h Fri Sep 09 13:30:34 2022 +0200 +++ b/src/libmlk-core/core/core.h Fri Oct 07 14:35:31 2022 +0200 @@ -21,7 +21,7 @@ #if defined(__cplusplus) # define CORE_BEGIN_DECLS extern "C" { -# define CORE_END_DECLS } +# define CORE_END_DECLS } #else # define CORE_BEGIN_DECLS # define CORE_END_DECLS
--- a/src/libmlk-core/core/core_p.h Fri Sep 09 13:30:34 2022 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,31 +0,0 @@ -/* - * core_p -- libcore private definitions - * - * Copyright (c) 2020-2022 David Demelier <markand@malikania.fr> - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#ifndef MLK_CORE_CORE_P_H -#define MLK_CORE_CORE_P_H - -#include "config.h" - -#if defined(MLK_WITH_NLS) -# include <libintl.h> -# define _(s) dgettext("libmlk-core", s) -#else -# define _(s) s -#endif - -#endif /* !MLK_CORE_CORE_P_H */
--- a/src/libmlk-core/core/panic.c Fri Sep 09 13:30:34 2022 +0200 +++ b/src/libmlk-core/core/panic.c Fri Oct 07 14:35:31 2022 +0200 @@ -20,14 +20,13 @@ #include <stdio.h> #include <stdlib.h> -#include "core_p.h" #include "error.h" #include "panic.h" static void terminate(void) { - fprintf(stderr, _("abort: %s\n"), error()); + fprintf(stderr, "abort: %s\n", error()); abort(); exit(1); } @@ -74,6 +73,6 @@ * This should not happen, if it does it means the user did not fully * satisfied the constraint of panic_handler. */ - fprintf(stderr, _("abort: panic handler returned\n")); + fprintf(stderr, "abort: panic handler returned\n"); exit(1); }
--- a/src/libmlk-core/core/sys.c Fri Sep 09 13:30:34 2022 +0200 +++ b/src/libmlk-core/core/sys.c Fri Oct 07 14:35:31 2022 +0200 @@ -60,12 +60,6 @@ .name = "molko" }; -static struct { - char bindir[PATH_MAX]; - char datadir[PATH_MAX]; - char localedir[PATH_MAX]; -} paths; - static inline char * normalize(char *str) { @@ -76,83 +70,6 @@ return str; } -static inline int -absolute(const char *path) -{ -#if defined(_WIN32) - return !PathIsRelativeA(path); -#else - /* Assuming UNIX like. */ - if (path[0] == '/') - return 1; - - return 0; -#endif -} - -static const char * -system_directory(const char *whichdir) -{ - static char path[PATH_MAX]; - static char ret[PATH_MAX]; - char *base, *binsect; - - /* - * Some system does not provide support (shame on you OpenBSD) - * to the executable path. In that case we use PREFIX+<dir> - * instead unless <dir> is already absolute. - */ - - /* - * If requested directory is absolute return immediately. - * - * e.g. whichdir == /usr/share -> return immediately - * whichdir == bin -> will be computed - */ - if (absolute(whichdir)) - return whichdir; - - /* - * If MLK_BINDIR is absolute then we're unable to compute whichdir which - * now is mandatory relative. In that case return its whole path to the - * prefix. - */ - if (absolute(MLK_BINDIR) || !(base = SDL_GetBasePath())) - snprintf(ret, sizeof (ret), "%s/%s", MLK_PREFIX, whichdir); - else { - /* - * Decompose the path to the given special directory by - * computing relative directory to it from where the - * binary is located. - * - * Example: - * - * PREFIX/bin/<executable> - * PREFIX/share/mysupergame - * - * The path to the data is ../share/mysupergame starting from - * the binary. - * - * Put the base path into the path and remove the value - * of MLK_BINDIR. - * - * Example: - * from: /usr/local/bin - * to: /usr/local - */ - port_strlcpy(path, base, sizeof (path)); - SDL_free(base); - - /* TODO: remove using negative offset. */ - if ((binsect = strstr(path, MLK_BINDIR))) - *binsect = '\0'; - - snprintf(ret, sizeof (ret), "%s%s", path, whichdir); - } - - return normalize(ret); -} - static const char * user_directory(enum sys_dir kind) { @@ -194,12 +111,10 @@ setbuf(stderr, NULL); setbuf(stdout, NULL); #endif - port_strlcpy(paths.bindir, system_directory(MLK_BINDIR), sizeof (paths.bindir)); - port_strlcpy(paths.datadir, system_directory(MLK_DATADIR), sizeof (paths.datadir)); - port_strlcpy(paths.localedir, system_directory(MLK_LOCALEDIR), sizeof (paths.localedir)); - port_strlcpy(info.organization, organization, sizeof (info.organization)); - port_strlcpy(info.name, name, sizeof (info.name)); + /* Kept for future use. */ + (void)organization; + (void)name; /* SDL2. */ if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO) < 0) @@ -229,16 +144,7 @@ const char * sys_dir(enum sys_dir kind) { - switch (kind) { - case SYS_DIR_BIN: - return paths.bindir; - case SYS_DIR_DATA: - return paths.datadir; - case SYS_DIR_LOCALE: - return paths.localedir; - default: - return user_directory(kind); - } + return user_directory(kind); } int @@ -317,7 +223,7 @@ stream->samplesz * sizeof (*stream->samples), stream->samplerate); alGenSources(1, &stream->source); alSourcei(stream->source, AL_BUFFER, stream->buffer); - + sf_close(file); return stream; @@ -409,7 +315,7 @@ .data = data, .datasz = datasz, }; - + if (!(file = sf_open_virtual(&io, SFM_READ, &info, &viodata))) return NULL;
--- a/src/libmlk-core/core/sys.h Fri Sep 09 13:30:34 2022 +0200 +++ b/src/libmlk-core/core/sys.h Fri Oct 07 14:35:31 2022 +0200 @@ -24,10 +24,7 @@ #include "core.h" enum sys_dir { - SYS_DIR_BIN, - SYS_DIR_DATA, - SYS_DIR_LOCALE, - SYS_DIR_SAVE, + SYS_DIR_SAVE }; CORE_BEGIN_DECLS
--- a/src/libmlk-core/core/sys_p.h Fri Sep 09 13:30:34 2022 +0200 +++ b/src/libmlk-core/core/sys_p.h Fri Oct 07 14:35:31 2022 +0200 @@ -19,10 +19,17 @@ #ifndef MLK_CORE_SYS_P_H #define MLK_CORE_SYS_P_H +#include <port/port.h> + #include <stddef.h> -#include <al.h> -#include <alc.h> +#if defined(MLK_OS_APPLE) +# include <OpenAL/al.h> +# include <OpenAL/alc.h> +#else +# include <al.h> +# include <alc.h> +#endif extern ALCdevice *audio_dev; extern ALCcontext *audio_ctx;
--- a/src/libmlk-core/core/sysconfig.h.in Fri Sep 09 13:30:34 2022 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,32 +0,0 @@ -/* - * sysconfig.h -- build time configuration - * - * Copyright (c) 2020-2022 David Demelier <markand@malikania.fr> - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#ifndef MOLKO_CORE_SYSCONFIG_H -#define MOLKO_CORE_SYSCONFIG_H - -#cmakedefine MOLKO_WITH_NLS - -#define MOLKO_BINDIR "@CMAKE_INSTALL_BINDIR@" -#define MOLKO_DATADIR "@CMAKE_INSTALL_DATADIR@" -#define MOLKO_LOCALEDIR "@CMAKE_INSTALL_LOCALEDIR@" - -#define MOLKO_ABS_BINDIR "@CMAKE_INSTALL_FULL_BINDIR" -#define MOLKO_ABS_DATADIR "@CMAKE_INSTALL_FULL_DATADIR" -#define MOLKO_ABS_LOCALEDIR "@CMAKE_INSTALL_FULL_LOCALEDIR" - -#endif /* !MOLKO_CORE_SYSCONFIG_H */
--- a/src/libmlk-core/core/translate.c Fri Sep 09 13:30:34 2022 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,44 +0,0 @@ -/* - * translate.c -- native language support - * - * Copyright (c) 2020-2022 David Demelier <markand@malikania.fr> - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#include <stdio.h> - -#include "config.h" - -#if defined(MLK_WITH_NLS) -# include <libintl.h> -#endif - -#include "sys.h" -#include "translate.h" -#include "util.h" - -int -translate_init(const char *name) -{ -#if defined(MLK_WITH_NLS) - if (!bindtextdomain(name, sys_dir(SYS_DIR_LOCALE))) - return -1; -#endif - return 0; -} - -void -translate_finish(void) -{ -}
--- a/src/libmlk-core/core/translate.h Fri Sep 09 13:30:34 2022 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -/* - * translate.h -- native language support - * - * Copyright (c) 2020-2022 David Demelier <markand@malikania.fr> - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#ifndef MLK_CORE_TRANSLATE_H -#define MLK_CORE_TRANSLATE_H - -#include "core.h" - -CORE_BEGIN_DECLS - -int -translate_init(const char *); - -void -translate_finish(void); - -CORE_END_DECLS - -#endif /* !MLK_CORE_TRANSLATE_H */
--- a/src/libmlk-core/core/vfs-zip.c Fri Sep 09 13:30:34 2022 +0200 +++ b/src/libmlk-core/core/vfs-zip.c Fri Oct 07 14:35:31 2022 +0200 @@ -16,6 +16,10 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +#include "config.h" + +#if defined(MLK_WITH_ZIP) + #include <assert.h> #include <string.h> @@ -121,3 +125,5 @@ return 0; } + +#endif /* !MLK_WITH_ZIP */
--- a/src/libmlk-core/core/vfs-zip.h Fri Sep 09 13:30:34 2022 +0200 +++ b/src/libmlk-core/core/vfs-zip.h Fri Oct 07 14:35:31 2022 +0200 @@ -19,6 +19,10 @@ #ifndef MLK_CORE_VFS_ZIP_H #define MLK_CORE_VFS_ZIP_H +#include "config.h" + +#if defined(MLK_WITH_ZIP) + #include "core.h" struct vfs; @@ -30,4 +34,6 @@ CORE_END_DECLS +#endif /* !MLK_WITH_ZIP */ + #endif /* !MLK_CORE_VFS_ZIP_H */
--- a/src/libmlk-port/port/config.h.in Fri Sep 09 13:30:34 2022 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,38 +0,0 @@ -/* - * config.h -- system configuration and polyfills - * - * Copyright (c) 2020-2022 David Demelier <markand@malikania.fr> - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#ifndef MOLKO_CONFIG_H -#define MOLKO_CONFIG_H - -#define MLK_PREFIX "@CMAKE_INSTALL_PREFIX@" -#define MLK_BINDIR "@CMAKE_INSTALL_BINDIR@" -#define MLK_DATADIR "@CMAKE_INSTALL_DATADIR@" -#define MLK_LOCALEDIR "@CMAKE_INSTALL_LOCALEDIR@" - -#cmakedefine MLK_WITH_NLS -#cmakedefine MLK_WITH_ZSTD - -#cmakedefine MLK_HAS_STRLCPY -#cmakedefine MLK_HAS_FMEMOPEN -#cmakedefine MLK_HAS_BASENAME -#cmakedefine MLK_HAS_DIRNAME -#cmakedefine MLK_HAS_GETOPT -#cmakedefine MLK_HAS_PATH_MAX -#cmakedefine MLK_HAS_SSIZE_T - -#endif /* !MOLKO_CONFIG_H */
--- a/src/libmlk-port/port/fmemopen.c Fri Sep 09 13:30:34 2022 +0200 +++ b/src/libmlk-port/port/fmemopen.c Fri Oct 07 14:35:31 2022 +0200 @@ -16,7 +16,9 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -#if defined(_WIN32) +#include "port.h" + +#if !defined(MLK_HAS_FMEMOPEN) #include <sys/stat.h> #include <sys/types.h> @@ -60,7 +62,7 @@ return fp; } -#else /* !_WIN32 */ +#else /* !MLK_HAS_FMEMOPEN */ #include <stdio.h>
--- a/src/libmlk-port/port/port.h Fri Sep 09 13:30:34 2022 +0200 +++ b/src/libmlk-port/port/port.h Fri Oct 07 14:35:31 2022 +0200 @@ -22,33 +22,66 @@ #include <limits.h> #include <stdio.h> -/* PATH_MAX (defined in limits.h) (POSIX) */ +/* + * This file helps finding what are the available features accross the various + * operating system in the landscape. + * + * The following macros are automatically set depending on the operating + * system: + * + * - MLK_OS_WINDOWS: running on any Windows machine + * - MLK_OS_POSIX: every mostly POSIX systems + * + * The following macro will be automatically defined unless the user override + * them: + * + * - MLK_HAS_FMEMOPEN: defined if fmemopen function is available. + * - MLK_HAS_SSIZE_T: defined if ssize_t typedef is available. + */ + +#if defined(_WIN32) +# define MLK_OS_WINDOWS +#elif defined(__FreeBSD__) +# define MLK_OS_POSIX +#elif defined(__OpenBSD__) +# define MLK_OS_POSIX +#elif defined(__NetBSD__) +# define MLK_OS_POSIX +#elif defined(__linux__) +# define MLK_OS_POSIX +#elif defined(__APPLE__) +# define MLK_OS_POSIX +# define MLK_OS_APPLE +#endif + #if !defined(PATH_MAX) # define PATH_MAX 2048 #endif -/* (POSIX) */ -#if defined(_WIN32) +#if defined(MLK_OS_POSIX) && !defined(MLK_HAS_SSIZE_T) +# define MLK_HAS_SSIZE_T +#endif + +#if !defined(MLK_HAS_SSIZE_T) typedef long long int ssize_t; #endif -/* OpenBSD extension (in next POSIX version). */ +#if defined(MLK_OS_POSIX) && !defined(MLK_HAS_FMEMOPEN) +# define MLK_HAS_FMEMOPEN +#endif + size_t port_strlcpy(char *, const char *, size_t); -/* Same as strlcpy. */ size_t port_strlcat(char *, const char *, size_t); -/* POSIX. */ FILE * port_fmemopen(void *, size_t, const char *); -/* POSIX. */ char * port_basename(char *); -/* POSIX. */ char * port_dirname(char *);
--- a/src/libmlk-rpg/CMakeLists.txt Fri Sep 09 13:30:34 2022 +0200 +++ b/src/libmlk-rpg/CMakeLists.txt Fri Oct 07 14:35:31 2022 +0200 @@ -86,7 +86,6 @@ ${libmlk-rpg_SOURCE_DIR}/rpg/quest.h ${libmlk-rpg_SOURCE_DIR}/rpg/rpg.c ${libmlk-rpg_SOURCE_DIR}/rpg/rpg.h - ${libmlk-rpg_SOURCE_DIR}/rpg/rpg_p.h ${libmlk-rpg_SOURCE_DIR}/rpg/save.c ${libmlk-rpg_SOURCE_DIR}/rpg/save.h ${libmlk-rpg_SOURCE_DIR}/rpg/selection.c
--- a/src/libmlk-rpg/rpg/battle-bar-default.c Fri Sep 09 13:30:34 2022 +0200 +++ b/src/libmlk-rpg/rpg/battle-bar-default.c Fri Oct 07 14:35:31 2022 +0200 @@ -40,7 +40,6 @@ #include "character.h" #include "inventory.h" #include "item.h" -#include "rpg_p.h" #include "spell.h" #define THEME(bar) ((bar)->theme ? (bar)->theme : theme_default()) @@ -327,28 +326,28 @@ { .align = ALIGN_TOP, .label = { - .text = _("Attack"), + .text = "Attack", .flags = LABEL_FLAGS_SHADOW } }, { .align = ALIGN_RIGHT, .label = { - .text = _("Magic"), + .text = "Magic", .flags = LABEL_FLAGS_SHADOW } }, { .align = ALIGN_BOTTOM, .label = { - .text = _("Objects"), + .text = "Objects", .flags = LABEL_FLAGS_SHADOW } }, { .align = ALIGN_LEFT, .label = { - .text = _("Special"), + .text = "Special", .flags = LABEL_FLAGS_SHADOW } }
--- a/src/libmlk-rpg/rpg/battle-state-check.c Fri Sep 09 13:30:34 2022 +0200 +++ b/src/libmlk-rpg/rpg/battle-state-check.c Fri Oct 07 14:35:31 2022 +0200 @@ -32,7 +32,6 @@ #include "battle-state.h" #include "battle.h" #include "character.h" -#include "rpg_p.h" struct fadeout { struct character *ch; @@ -85,7 +84,7 @@ struct fadeout *fade; if (!bt->effects) { - tracef(_("can't create a fadeout effect without a drawable_stack")); + tracef("can't create a fadeout effect without a drawable_stack"); return; }
--- a/src/libmlk-rpg/rpg/battle-state-lost.c Fri Sep 09 13:30:34 2022 +0200 +++ b/src/libmlk-rpg/rpg/battle-state-lost.c Fri Oct 07 14:35:31 2022 +0200 @@ -27,7 +27,6 @@ #include "battle-state-lost.h" #include "battle-state.h" #include "battle.h" -#include "rpg_p.h" struct self { struct battle_state_lost data; @@ -62,7 +61,7 @@ assert(lost); assert(bt); - lost->text = _("You have been defeated..."); + lost->text = "You have been defeated..."; lost->msg.lines = &lost->text; lost->msg.linesz = 1;
--- a/src/libmlk-rpg/rpg/battle-state-victory.c Fri Sep 09 13:30:34 2022 +0200 +++ b/src/libmlk-rpg/rpg/battle-state-victory.c Fri Oct 07 14:35:31 2022 +0200 @@ -27,7 +27,6 @@ #include "battle-state-victory.h" #include "battle-state.h" #include "battle.h" -#include "rpg_p.h" struct self { struct battle_state_victory data; @@ -63,7 +62,7 @@ { assert(bt); - vic->text = _("Victory!"); + vic->text = "Victory!"; vic->msg.lines = &vic->text; vic->msg.linesz = 1;
--- a/src/libmlk-rpg/rpg/battle.c Fri Sep 09 13:30:34 2022 +0200 +++ b/src/libmlk-rpg/rpg/battle.c Fri Oct 07 14:35:31 2022 +0200 @@ -48,7 +48,6 @@ #include "character.h" #include "inventory.h" #include "item.h" -#include "rpg_p.h" #include "spell.h" struct indicator { @@ -392,7 +391,7 @@ struct indicator *id; if (!(bt->effects)) { - tracef(_("unable to add id without a drawable_stack")); + tracef("unable to add id without a drawable_stack"); return; }
--- a/src/libmlk-rpg/rpg/character.c Fri Sep 09 13:30:34 2022 +0200 +++ b/src/libmlk-rpg/rpg/character.c Fri Oct 07 14:35:31 2022 +0200 @@ -76,7 +76,7 @@ assert(ch); assert(save_ok(s)); - return save_exec(s, (const char *)assets_sql_character_save, "s iii i iiiiii", + return save_exec(s, (const char *)assets_character_save, "s iii i iiiiii", ch->name, ch->hp, ch->mp, @@ -100,7 +100,7 @@ struct save_stmt stmt; enum save_stmt_errno ret; - if (save_stmt_init(&stmt, s, (const char *)assets_sql_character_load, "s", ch->name) < 0) + if (save_stmt_init(&stmt, s, (const char *)assets_character_load, "s", ch->name) < 0) return -1; ret = save_stmt_next(&stmt, "iii i iiiiii",
--- a/src/libmlk-rpg/rpg/map-file.c Fri Sep 09 13:30:34 2022 +0200 +++ b/src/libmlk-rpg/rpg/map-file.c Fri Oct 07 14:35:31 2022 +0200 @@ -33,7 +33,6 @@ #include <core/zfile.h> #include "map-file.h" -#include "rpg_p.h" #define MAX_F(v) MAX_F_(v) #define MAX_F_(v) "%" #v "[^\n|]" @@ -58,7 +57,7 @@ else if (strcmp(layer_name, "above") == 0) layer_type = MAP_LAYER_TYPE_ABOVE; else - return errorf(_("invalid layer type: %s"), layer_name); + return errorf("invalid layer type: %s", layer_name); amount = ctx->map->columns * ctx->map->rows; current = 0; @@ -89,7 +88,7 @@ struct map_block *reg; if (!ctx->mf->load_action) { - tracef(_("ignoring action %d,%d,%u,%u,%d,%s"), x, y, w, h, block, exec); + tracef("ignoring action %d,%d,%u,%u,%d,%s", x, y, w, h, block, exec); continue; } @@ -127,11 +126,11 @@ /* Check if weight/height has been specified. */ if (ctx->map->columns == 0 || ctx->map->rows == 0) - return errorf(_("missing map dimensions before layer")); + return errorf("missing map dimensions before layer"); /* Determine layer type. */ if (sscanf(line, "layer|%32s", layer_name) <= 0) - return errorf(_("missing layer type definition")); + return errorf("missing layer type definition"); if (strcmp(layer_name, "actions") == 0) return parse_actions(ctx); @@ -147,7 +146,7 @@ struct tileset_file *tf = &mf->tileset_file; if (!(p = strchr(line, '|'))) - return errorf(_("could not parse tileset")); + return errorf("could not parse tileset"); snprintf(path, sizeof (path), "%s/%s", ctx->basedir, p + 1); @@ -163,7 +162,7 @@ parse_title(struct context *ctx, const char *line) { if (sscanf(line, "title|" MAX_F(MAP_FILE_TITLE_MAX), ctx->mf->title) != 1 || strlen(ctx->mf->title) == 0) - return errorf(_("null map title")); + return errorf("null map title"); ctx->map->title = ctx->mf->title; @@ -174,7 +173,7 @@ parse_columns(struct context *ctx, const char *line) { if (sscanf(line, "columns|%u", &ctx->map->columns) != 1 || ctx->map->columns == 0) - return errorf(_("null map columns")); + return errorf("null map columns"); return 0; } @@ -183,7 +182,7 @@ parse_rows(struct context *ctx, const char *line) { if (sscanf(line, "rows|%u", &ctx->map->rows) != 1 || ctx->map->rows == 0) - return errorf(_("null map rows")); + return errorf("null map rows"); return 0; } @@ -192,7 +191,7 @@ parse_origin(struct context *ctx, const char *line) { if (sscanf(line, "origin|%d|%d", &ctx->map->player_x, &ctx->map->player_y) != 2) - return errorf(_("invalid origin")); + return errorf("invalid origin"); return 0; } @@ -246,18 +245,18 @@ * Check that we have parsed every required components. */ if (!map->title) - return errorf(_("missing title")); + return errorf("missing title"); /* * We don't need to check width/height because parsing layers and * tilesets already check for their presence, so only check layers. */ if (!map->layers[0].tiles) - return errorf(_("missing background layer")); + return errorf("missing background layer"); if (!map->layers[1].tiles) - return errorf(_("missing foreground layer")); + return errorf("missing foreground layer"); if (!tileset_ok(map->tileset)) - return errorf(_("missing tileset")); + return errorf("missing tileset"); return 0; }
--- a/src/libmlk-rpg/rpg/message.c Fri Sep 09 13:30:34 2022 +0200 +++ b/src/libmlk-rpg/rpg/message.c Fri Oct 07 14:35:31 2022 +0200 @@ -36,7 +36,6 @@ #include <ui/theme.h> #include "message.h" -#include "rpg_p.h" #define THEME(msg) (msg->theme ? msg->theme : theme_default()) @@ -129,9 +128,9 @@ label.flags = LABEL_FLAGS_SHADOW; if (label.x + lw > msg->w) - tracef(_("message width too small: %u < %u"), msg->w, min_width(msg)); + tracef("message width too small: %u < %u", msg->w, min_width(msg)); if (label.y + lh > msg->h) - tracef(_("message height too small: %u < %u"), msg->h, min_height(msg)); + tracef("message height too small: %u < %u", msg->h, min_height(msg)); /* * The function label_draw will use THEME_COLOR_NORMAL to draw @@ -162,7 +161,7 @@ : MESSAGE_STATE_SHOWING; if (msg->flags & MESSAGE_FLAGS_AUTOMATIC && msg->timeout == 0) - tracef(_("message is automatic but has zero timeout")); + tracef("message is automatic but has zero timeout"); } void @@ -268,7 +267,7 @@ unsigned int w, h; if (msg->w == 0 || msg->h == 0) { - tracef(_("message has null dimensions")); + tracef("message has null dimensions"); return; }
--- a/src/libmlk-rpg/rpg/property.c Fri Sep 09 13:30:34 2022 +0200 +++ b/src/libmlk-rpg/rpg/property.c Fri Oct 07 14:35:31 2022 +0200 @@ -31,7 +31,7 @@ assert(p); assert(save_ok(s)); - return save_exec(s, (const char *)assets_sql_property_save, "ss", p->key, p->value); + return save_exec(s, (const char *)assets_property_save, "ss", p->key, p->value); } int @@ -43,7 +43,7 @@ struct save_stmt stmt; enum save_stmt_errno ret; - if (save_stmt_init(&stmt, s, (const char *)assets_sql_property_load, "s", p->key) < 0) + if (save_stmt_init(&stmt, s, (const char *)assets_property_load, "s", p->key) < 0) return -1; ret = save_stmt_next(&stmt, "s", p->value, sizeof (p->value)) == SAVE_STMT_ROW; @@ -58,6 +58,6 @@ assert(p); assert(save_ok(s)); - return save_exec(s, (const char *)assets_sql_property_remove, "s", p->key); + return save_exec(s, (const char *)assets_property_remove, "s", p->key); }
--- a/src/libmlk-rpg/rpg/quest.c Fri Sep 09 13:30:34 2022 +0200 +++ b/src/libmlk-rpg/rpg/quest.c Fri Oct 07 14:35:31 2022 +0200 @@ -37,15 +37,15 @@ if (save_tx_begin(s) < 0) return -1; - if (save_exec(s, (const char *)assets_sql_quest_save, "s", q->name) < 0) { + if (save_exec(s, (const char *)assets_quest_save, "s", q->name) < 0) { save_tx_rollback(s); return -1; } for (size_t i = 0; i < q->stepsz; ++i) { step = &q->steps[i]; - - if (save_exec(s, (const char *)assets_sql_quest_step_save, "ssi", q->name, step->name, step->percent) < 0) { + + if (save_exec(s, (const char *)assets_quest_step_save, "ssi", q->name, step->name, step->percent) < 0) { save_tx_rollback(s); return -1; } @@ -67,15 +67,15 @@ for (size_t i = 0; i < q->stepsz; ++i) { step = &q->steps[i]; - - if (save_stmt_init(&stmt, s, (const char *)assets_sql_quest_step_load, "s", step->name)) + + if (save_stmt_init(&stmt, s, (const char *)assets_quest_step_load, "s", step->name)) return -1; - + if (save_stmt_next(&stmt, "i", &step->percent) < 0) { save_stmt_finish(&stmt); return -1; } - + save_stmt_finish(&stmt); }
--- a/src/libmlk-rpg/rpg/rpg.c Fri Sep 09 13:30:34 2022 +0200 +++ b/src/libmlk-rpg/rpg/rpg.c Fri Oct 07 14:35:31 2022 +0200 @@ -16,19 +16,11 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -#include <core/translate.h> - #include "rpg.h" -#include "rpg_p.h" int rpg_init(void) { -#if defined(MOLKO_WITH_NLS) - if (translate_init("libmlk-rpg") < 0) - return -1; -#endif - return 0; }
--- a/src/libmlk-rpg/rpg/rpg_p.h Fri Sep 09 13:30:34 2022 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,31 +0,0 @@ -/* - * rpg_p.h -- librpg private definitions - * - * Copyright (c) 2020-2022 David Demelier <markand@malikania.fr> - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#ifndef MLK_RPG_RPG_P_H -#define MLK_RPG_RPG_P_H - -#include "config.h" - -#if defined(MLK_WITH_NLS) -# include <libintl.h> -# define _(s) dgettext("libmlk-rpg", s) -#else -# define _(s) s -#endif - -#endif /* !MLK_RPG_RPG_P_H */
--- a/src/libmlk-rpg/rpg/save.c Fri Sep 09 13:30:34 2022 +0200 +++ b/src/libmlk-rpg/rpg/save.c Fri Oct 07 14:35:31 2022 +0200 @@ -31,7 +31,6 @@ #include <assets/sql/init.h> -#include "rpg_p.h" #include "property.h" #include "save.h" @@ -75,7 +74,7 @@ for (size_t i = 0; i < UTIL_SIZE(table); ++i) { if (property_load(&table[i].prop, db) < 0) { sqlite3_close(db->handle); - return errorf(_("database not initialized correctly")); + return errorf("database not initialized correctly"); } *table[i].date = strtoull(table[i].prop.value, NULL, 10); @@ -184,7 +183,7 @@ if (sqlite3_open_v2(path, (sqlite3**)&db->handle, flags, NULL) != SQLITE_OK) goto sqlite3_err; - if (mode == SAVE_MODE_WRITE && execu(db, assets_sql_init) < 0) + if (mode == SAVE_MODE_WRITE && execu(db, assets_init) < 0) goto sqlite3_err; return verify(db); @@ -268,10 +267,10 @@ switch (sqlite3_step(stmt->handle)) { case SQLITE_ROW: va_start(ap, args); - + if (extract(stmt, args, ap) == 0) ret = SAVE_STMT_ROW; - + va_end(ap); break; case SQLITE_DONE:
--- a/src/libmlk-rpg/rpg/tileset-file.c Fri Sep 09 13:30:34 2022 +0200 +++ b/src/libmlk-rpg/rpg/tileset-file.c Fri Oct 07 14:35:31 2022 +0200 @@ -33,7 +33,6 @@ #include <core/util.h> #include <core/zfile.h> -#include "rpg_p.h" #include "tileset-file.h" #include "tileset.h" @@ -131,7 +130,7 @@ parse_tilewidth(struct context *ctx, const char *line) { if (sscanf(line, "tilewidth|%u", &ctx->tilewidth) != 1 || ctx->tilewidth == 0) - return errorf(_("tilewidth is null")); + return errorf("tilewidth is null"); return 0; } @@ -140,7 +139,7 @@ parse_tileheight(struct context *ctx, const char *line) { if (sscanf(line, "tileheight|%u", &ctx->tileheight) != 1 || ctx->tileheight == 0) - return errorf(_("tileheight is null")); + return errorf("tileheight is null"); return 0; } @@ -232,9 +231,9 @@ char *p; if (ctx->tilewidth == 0 || ctx->tileheight == 0) - return errorf(_("missing tile dimensions before image")); + return errorf("missing tile dimensions before image"); if (!(p = strchr(line, '|'))) - return errorf(_("could not parse image")); + return errorf("could not parse image"); if (image_open(&ctx->tf->image, util_pathf("%s/%s", ctx->basedir, p + 1)) < 0) return -1; @@ -263,7 +262,7 @@ if (strncmp(line, props[i].property, strlen(props[i].property)) == 0) return props[i].read(ctx, line); } - + return 0; } @@ -291,7 +290,7 @@ check(const struct tileset *tileset) { if (!tileset->sprite) - return errorf(_("missing tileset image")); + return errorf("missing tileset image"); return 0; }
--- a/src/libmlk-ui/CMakeLists.txt Fri Sep 09 13:30:34 2022 +0200 +++ b/src/libmlk-ui/CMakeLists.txt Fri Oct 07 14:35:31 2022 +0200 @@ -40,7 +40,6 @@ ${libmlk-ui_SOURCE_DIR}/ui/theme.h ${libmlk-ui_SOURCE_DIR}/ui/ui.c ${libmlk-ui_SOURCE_DIR}/ui/ui.h - ${libmlk-ui_SOURCE_DIR}/ui/ui_p.h ) set(
--- a/src/libmlk-ui/ui/button.c Fri Sep 09 13:30:34 2022 +0200 +++ b/src/libmlk-ui/ui/button.c Fri Oct 07 14:35:31 2022 +0200 @@ -28,7 +28,6 @@ #include "button.h" #include "label.h" #include "theme.h" -#include "ui_p.h" static int is_boxed(const struct button *button, const struct event_click *click) @@ -57,9 +56,9 @@ label_query(&label, &lw, &lh); if (lw > button->w) - tracef(_("button width is too small for text: %u < %u"), button->w, lw); + tracef("button width is too small for text: %u < %u", button->w, lw); if (lh > button->h) - tracef(_("button height is too small for text: %u < %u"), button->h, lh); + tracef("button height is too small for text: %u < %u", button->h, lh); align(ALIGN_CENTER, &label.x, &label.y, lw, lh, button->x, button->y, button->w, button->h);
--- a/src/libmlk-ui/ui/gridmenu.c Fri Sep 09 13:30:34 2022 +0200 +++ b/src/libmlk-ui/ui/gridmenu.c Fri Oct 07 14:35:31 2022 +0200 @@ -27,7 +27,6 @@ #include <core/texture.h> #include <core/trace.h> -#include "ui_p.h" #include "frame.h" #include "label.h" #include "gridmenu.h" @@ -83,7 +82,7 @@ * is outside of the elements. */ if (reqw > menu->w) { - tracef(_("gridmenu width is too small: %u < %u"), menu->w, reqw); + tracef("gridmenu width is too small: %u < %u", menu->w, reqw); menu->spacew = 1; } else if (menu->ncols > 1) { reqw -= theme->padding * 2; @@ -91,7 +90,7 @@ } if (reqh > menu->h) { - tracef(_("gridmenu height is too small: %u < %u"), menu->h, reqh); + tracef("gridmenu height is too small: %u < %u", menu->h, reqh); menu->spaceh = 1; } else if (menu->nrows > 1) { reqh -= theme->padding * 2;
--- a/src/libmlk-ui/ui/notify.c Fri Sep 09 13:30:34 2022 +0200 +++ b/src/libmlk-ui/ui/notify.c Fri Oct 07 14:35:31 2022 +0200 @@ -30,7 +30,6 @@ #include "label.h" #include "notify.h" #include "theme.h" -#include "ui_p.h" #define WIDTH (window.w / 3) #define HEIGHT (window.h / 10) @@ -81,7 +80,7 @@ /* Align icon at the left center. */ if (n->icon->h >= HEIGHT) { - tracef(_("notification icon is too large: %u > %u"), n->icon->h, HEIGHT); + tracef("notification icon is too large: %u > %u", n->icon->h, HEIGHT); geo->icon_x = x + geo->theme->padding; geo->icon_y = y + geo->theme->padding; } else {
--- a/src/libmlk-ui/ui/theme.c Fri Sep 09 13:30:34 2022 +0200 +++ b/src/libmlk-ui/ui/theme.c Fri Oct 07 14:35:31 2022 +0200 @@ -66,9 +66,9 @@ struct font **dest; struct font font; } default_fonts[] = { - FONT(assets_fonts_opensans_light, 12, THEME_FONT_DEBUG), - FONT(assets_fonts_opensans_regular, 14, THEME_FONT_INTERFACE), - FONT(assets_fonts_opensans_medium, 14, THEME_FONT_IMPORTANT) + FONT(assets_opensans_light, 12, THEME_FONT_DEBUG), + FONT(assets_opensans_regular, 14, THEME_FONT_INTERFACE), + FONT(assets_opensans_medium, 14, THEME_FONT_IMPORTANT) }; int
--- a/src/libmlk-ui/ui/ui.c Fri Sep 09 13:30:34 2022 +0200 +++ b/src/libmlk-ui/ui/ui.c Fri Oct 07 14:35:31 2022 +0200 @@ -16,20 +16,12 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -#include <core/translate.h> - -#include "ui_p.h" +#include "theme.h" #include "ui.h" -#include "theme.h" int ui_init(void) { -#if defined(MOLKO_WITH_NLS) - if (translate_init("libmlk-ui") < 0) - return -1; -#endif - return theme_init(); }
--- a/src/libmlk-ui/ui/ui_p.h Fri Sep 09 13:30:34 2022 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,31 +0,0 @@ -/* - * ui_p -- libui private definitions - * - * Copyright (c) 2020-2022 David Demelier <markand@malikania.fr> - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#ifndef MLK_UI_UI_P_H -#define MLK_UI_UI_P_H - -#include "config.h" - -#if defined(MLK_WITH_NLS) -# include <libintl.h> -# define _(s) dgettext("libmlk-ui", s) -#else -# define _(s) s -#endif - -#endif /* !MLK_UI_UI_P_H */