Compare commits
No commits in common. "18c8e6b887be0ab037e00cd1f35a17831a045e6c" and "52b3240549fa2a9ae918bcade65553653f71ba6e" have entirely different histories.
18c8e6b887
...
52b3240549
|
|
@ -1,33 +0,0 @@
|
||||||
{
|
|
||||||
"configurations": [
|
|
||||||
{
|
|
||||||
"name": "Linux",
|
|
||||||
"intelliSenseMode": "linux-gcc-arm",
|
|
||||||
"includePath": [
|
|
||||||
"${workspaceFolder}/src",
|
|
||||||
"${workspaceFolder}/src/components",
|
|
||||||
"${workspaceFolder}/core",
|
|
||||||
"${workspaceFolder}/core/host/generic",
|
|
||||||
"/usr/include/lua5.4",
|
|
||||||
"/usr/include/pipewire-0.3",
|
|
||||||
"/usr/include/spa-0.2",
|
|
||||||
"/usr/include/libdrm",
|
|
||||||
"/usr/include/libdecor-0",
|
|
||||||
"/usr/include/x86_64-linux-gnu"
|
|
||||||
],
|
|
||||||
"compilerPath": "/usr/bin/gcc",
|
|
||||||
"defines": [
|
|
||||||
"-D_REENTRANT"
|
|
||||||
],
|
|
||||||
"cStandard": "c17",
|
|
||||||
"browse": {
|
|
||||||
"path": [
|
|
||||||
"${workspaceFolder}"
|
|
||||||
],
|
|
||||||
"limitSymbolsToIncludedHeaders": true,
|
|
||||||
"databaseFilename": ""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"version": 4
|
|
||||||
}
|
|
||||||
|
|
@ -4,5 +4,14 @@
|
||||||
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
||||||
"version": "0.2.0",
|
"version": "0.2.0",
|
||||||
"configurations": [
|
"configurations": [
|
||||||
|
{
|
||||||
|
"name": "Debug",
|
||||||
|
"type": "gdb",
|
||||||
|
"request": "launch",
|
||||||
|
"target": "${workspaceFolder}/build/linux/2D_Engine",
|
||||||
|
"cwd": "${workspaceFolder}/build/linux",
|
||||||
|
"valuesFormatting": "parseText",
|
||||||
|
"preLaunchTask": "Build"
|
||||||
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
@ -1,7 +1,11 @@
|
||||||
{
|
{
|
||||||
|
"nixEnvSelector.suggestion": false,
|
||||||
|
"nixEnvSelector.nixFile": "${workspaceFolder}/shell.nix",
|
||||||
|
"nixEnvSelector.useFlakes": false,
|
||||||
|
|
||||||
"files.associations": {
|
"files.associations": {
|
||||||
"*.tsx": "xml",
|
"*.tsx": "xml",
|
||||||
"*.map": "json",
|
"*.map": "json",
|
||||||
"configure": "shellscript",
|
"configure": "shellscript"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -54,25 +54,6 @@
|
||||||
"clear": true
|
"clear": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"label": "Run",
|
|
||||||
"detail": "Build project and run",
|
|
||||||
"type": "shell",
|
|
||||||
"command": "make",
|
|
||||||
"args": [
|
|
||||||
"-j$(nproc)",
|
|
||||||
"run"
|
|
||||||
],
|
|
||||||
"group": "build",
|
|
||||||
"presentation": {
|
|
||||||
"echo": true,
|
|
||||||
"reveal": "always",
|
|
||||||
"focus": true,
|
|
||||||
"panel": "shared",
|
|
||||||
"showReuseMessage": true,
|
|
||||||
"clear": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"label": "Build Verbose",
|
"label": "Build Verbose",
|
||||||
"detail": "Build project with verbosity on",
|
"detail": "Build project with verbosity on",
|
||||||
|
|
@ -91,25 +72,6 @@
|
||||||
"clear": true
|
"clear": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"label": "Build Debug",
|
|
||||||
"detail": "Build project in debug mode",
|
|
||||||
"type": "shell",
|
|
||||||
"command": "make",
|
|
||||||
"args": [
|
|
||||||
"-j$(nproc)",
|
|
||||||
"DEBUG=2"
|
|
||||||
],
|
|
||||||
"group": "build",
|
|
||||||
"presentation": {
|
|
||||||
"echo": true,
|
|
||||||
"reveal": "always",
|
|
||||||
"focus": true,
|
|
||||||
"panel": "shared",
|
|
||||||
"showReuseMessage": true,
|
|
||||||
"clear": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"label": "Run Debug",
|
"label": "Run Debug",
|
||||||
"detail": "Build project in debug mode and run",
|
"detail": "Build project in debug mode and run",
|
||||||
|
|
@ -129,6 +91,25 @@
|
||||||
"showReuseMessage": true,
|
"showReuseMessage": true,
|
||||||
"clear": true
|
"clear": true
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Build Debug",
|
||||||
|
"detail": "Build project in debug mode",
|
||||||
|
"type": "shell",
|
||||||
|
"command": "make",
|
||||||
|
"args": [
|
||||||
|
"-j$(nproc)",
|
||||||
|
"DEBUG=2"
|
||||||
|
],
|
||||||
|
"group": "build",
|
||||||
|
"presentation": {
|
||||||
|
"echo": true,
|
||||||
|
"reveal": "always",
|
||||||
|
"focus": true,
|
||||||
|
"panel": "shared",
|
||||||
|
"showReuseMessage": true,
|
||||||
|
"clear": true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
24
Makefile
24
Makefile
|
|
@ -4,6 +4,14 @@ SHELL = /usr/bin/env bash
|
||||||
|
|
||||||
ROOT := $(realpath $(dir $(lastword $(MAKEFILE_LIST))))
|
ROOT := $(realpath $(dir $(lastword $(MAKEFILE_LIST))))
|
||||||
|
|
||||||
|
ifeq ($(filter clean-all,$(MAKECMDGOALS)),)
|
||||||
|
ifneq ($(realpath $(ROOT)/config.mk), $(ROOT)/config.mk)
|
||||||
|
$(error ERROR: Please run the configure script before building)
|
||||||
|
endif
|
||||||
|
|
||||||
|
include $(ROOT)/config.mk
|
||||||
|
endif
|
||||||
|
|
||||||
#
|
#
|
||||||
# User settings
|
# User settings
|
||||||
#
|
#
|
||||||
|
|
@ -26,28 +34,12 @@ TARGET_HOST_CFLAGS += -O1 -g -DDEBUG=$(DEBUG) -Wextra -Wall --pedantic -Wno-miss
|
||||||
-Wstrict-prototypes -Winline -Wundef -Wnested-externs -Wcast-qual \
|
-Wstrict-prototypes -Winline -Wundef -Wnested-externs -Wcast-qual \
|
||||||
-Wshadow -Wunreachable-code -Wlogical-op -Wfloat-equal -Wstrict-aliasing=2 \
|
-Wshadow -Wunreachable-code -Wlogical-op -Wfloat-equal -Wstrict-aliasing=2 \
|
||||||
-Wredundant-decls -Wold-style-definition
|
-Wredundant-decls -Wold-style-definition
|
||||||
|
|
||||||
ASSET_BUILDER_CFLAGS += -O1 -g -DDEBUG=$(DEBUG) -Wextra -Wall --pedantic -Wno-missing-braces \
|
|
||||||
-Wno-missing-field-initializers -Wformat=2 -Wswitch-default -Wswitch \
|
|
||||||
-Wcast-align -Wpointer-arith -Wbad-function-cast -Wstrict-overflow=5 \
|
|
||||||
-Wstrict-prototypes -Winline -Wundef -Wnested-externs -Wcast-qual \
|
|
||||||
-Wshadow -Wunreachable-code -Wlogical-op -Wfloat-equal -Wstrict-aliasing=2 \
|
|
||||||
-Wredundant-decls -Wold-style-definition
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
#
|
#
|
||||||
# End
|
# End
|
||||||
#
|
#
|
||||||
|
|
||||||
# Import config
|
|
||||||
ifeq ($(filter clean-all,$(MAKECMDGOALS)),)
|
|
||||||
ifneq ($(realpath $(ROOT)/config.mk), $(ROOT)/config.mk)
|
|
||||||
$(error ERROR: Please run the configure script before building)
|
|
||||||
endif
|
|
||||||
|
|
||||||
include $(ROOT)/config.mk
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Relocate vars
|
# Relocate vars
|
||||||
BUILD_DIR := $(ROOT)/$(BUILD_DIR)/$(TARGET_HOST)
|
BUILD_DIR := $(ROOT)/$(BUILD_DIR)/$(TARGET_HOST)
|
||||||
|
|
||||||
|
|
|
||||||
4
TODO.md
4
TODO.md
|
|
@ -28,9 +28,9 @@
|
||||||
|
|
||||||
- [ ] Create lua component
|
- [ ] Create lua component
|
||||||
|
|
||||||
### Done
|
- [ ] Rethink makefile structure
|
||||||
|
|
||||||
- [x] Rethink makefile structure
|
### Done
|
||||||
|
|
||||||
- [x] Make camera center on map
|
- [x] Make camera center on map
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
gcc
|
||||||
|
# Headers
|
||||||
|
-Iassets/asset_builder/src/headers
|
||||||
|
-Isrc/components
|
||||||
|
|
||||||
|
# Macros
|
||||||
|
-DDEBUG=2
|
||||||
|
|
@ -17,14 +17,14 @@ endif
|
||||||
|
|
||||||
$(ASSET_BUILDER_OUTPUT): $(OBJECTS)
|
$(ASSET_BUILDER_OUTPUT): $(OBJECTS)
|
||||||
$(Q)mkdir -p $(dir $@)
|
$(Q)mkdir -p $(dir $@)
|
||||||
$(Q)$(HOST_CC) $(ASSET_BUILDER_CFLAGS) $(OBJECTS) -o $@ $(ASSET_BUILDER_LDFLAGS)
|
@echo -e "[100%] $(YELLOW)Linking $(notdir $(ASSET_BUILDER_OUTPUT))$(RESET)"
|
||||||
@echo "[100%] $(YELLOW)Linking $(notdir $(ASSET_BUILDER_OUTPUT))$(RESET)"
|
$(Q)$(ASSET_BUILDER_CC) $(ASSET_BUILDER_CFLAGS) $(ASSET_BUILDER_LDFLAGS) $(OBJECTS) -o $@
|
||||||
|
|
||||||
$(BUILD_DIR)/$(notdir $(ASSET_BUILDER_DIR))/%.o: $(ASSET_BUILDER_DIR)/%
|
$(BUILD_DIR)/$(notdir $(ASSET_BUILDER_DIR))/%.o: $(ASSET_BUILDER_DIR)/%
|
||||||
$(Q)mkdir -p $(dir $@)
|
$(Q)mkdir -p $(dir $@)
|
||||||
$(eval CURRENT_FILE := $(shell echo $$(($(CURRENT_FILE)+1))))
|
$(eval CURRENT_FILE := $(shell echo $$(($(CURRENT_FILE)+1))))
|
||||||
$(eval PERCENTAGE := $(shell echo $$(($(CURRENT_FILE)*100/$(TOTAL_BUILD_FILES)))))
|
$(eval PERCENTAGE := $(shell echo $$(($(CURRENT_FILE)*100/$(TOTAL_BUILD_FILES)))))
|
||||||
$(Q)$(HOST_CC) $(ASSET_BUILDER_CFLAGS) $(INCLUDES:%=-I%) -MMD -MP -c $< -o $@
|
@echo -e "[$(PERCENTAGE)%] $(GREEN)Building C object $@$(RESET)"
|
||||||
@echo "[$(PERCENTAGE)%] $(GREEN)Building C object $@$(RESET)"
|
$(Q)$(ASSET_BUILDER_CC) $(ASSET_BUILDER_CFLAGS) $(INCLUDES:%=-I%) -MMD -MP -c $< -o $@
|
||||||
|
|
||||||
-include $(ASSET_BUILDER_OBJECTS:.o=.d)
|
-include $(ASSET_BUILDER_OBJECTS:.o=.d)
|
||||||
|
|
|
||||||
|
|
@ -9,9 +9,6 @@ ASSETS := \
|
||||||
maps/dungeon_entry.map \
|
maps/dungeon_entry.map \
|
||||||
maps/dungeon_room_1.map
|
maps/dungeon_room_1.map
|
||||||
|
|
||||||
LUA_SOURCES := \
|
|
||||||
enemy_system.lua
|
|
||||||
|
|
||||||
OBJECTS := $(ASSETS:%=$(BUILD_DIR)/$(notdir $(ASSETS_DIR))/%.o)
|
OBJECTS := $(ASSETS:%=$(BUILD_DIR)/$(notdir $(ASSETS_DIR))/%.o)
|
||||||
|
|
||||||
ifeq ($(TOTAL_BUILD_FILES),)
|
ifeq ($(TOTAL_BUILD_FILES),)
|
||||||
|
|
@ -19,14 +16,14 @@ TOTAL_BUILD_FILES := $(shell echo $$(($$($(MAKE) -n $(OBJECTS) TOTAL_BUILD_FILES
|
||||||
endif
|
endif
|
||||||
|
|
||||||
$(ASSET_OUTPUT): $(OBJECTS) $(ASSET_BUILDER_OUTPUT)
|
$(ASSET_OUTPUT): $(OBJECTS) $(ASSET_BUILDER_OUTPUT)
|
||||||
@echo "[100%] $(YELLOW)Building $(notdir $(ASSET_OUTPUT))$(RESET)"
|
@echo -e "[100%] $(YELLOW)Building $(notdir $(ASSET_OUTPUT))$(RESET)"
|
||||||
$(Q)$(ASSET_BUILDER_OUTPUT) $@ $(OBJECTS)
|
$(Q)$(ASSET_BUILDER_OUTPUT) $@ $(OBJECTS)
|
||||||
|
|
||||||
$(BUILD_DIR)/$(notdir $(ASSETS_DIR))/%.o: $(ASSETS_DIR)/% $(ASSET_BUILDER_OUTPUT)
|
$(BUILD_DIR)/$(notdir $(ASSETS_DIR))/%.o: $(ASSETS_DIR)/% $(ASSET_BUILDER_OUTPUT)
|
||||||
$(Q)mkdir -p $(dir $@)
|
$(Q)mkdir -p $(dir $@)
|
||||||
$(eval CURRENT_FILE := $(shell echo $$(($(CURRENT_FILE) + 1))))
|
$(eval CURRENT_FILE := $(shell echo $$(($(CURRENT_FILE) + 1))))
|
||||||
$(eval PERCENTAGE := $(shell echo $$(($(CURRENT_FILE) * 100 / $(TOTAL_BUILD_FILES)))))
|
$(eval PERCENTAGE := $(shell echo $$(($(CURRENT_FILE) * 100 / $(TOTAL_BUILD_FILES)))))
|
||||||
@echo "[$(PERCENTAGE)%] $(GREEN)Building ASSET object $@$(RESET)"
|
@echo -e "[$(PERCENTAGE)%] $(GREEN)Building ASSET object $@$(RESET)"
|
||||||
$(Q)$(ASSET_BUILDER_OUTPUT) $@ -c $<
|
$(Q)$(ASSET_BUILDER_OUTPUT) $@ -c $<
|
||||||
|
|
||||||
$(ASSET_BUILDER_OUTPUT): FORCE
|
$(ASSET_BUILDER_OUTPUT): FORCE
|
||||||
|
|
|
||||||
|
|
@ -26,27 +26,22 @@ print_error()
|
||||||
}
|
}
|
||||||
|
|
||||||
## Parse args
|
## Parse args
|
||||||
CURRENT_HOST="guess"
|
|
||||||
TARGET_HOST="guess"
|
TARGET_HOST="guess"
|
||||||
|
|
||||||
for i in "$@"; do
|
for i in "$@"; do
|
||||||
case $i in
|
case $i in
|
||||||
--target-host=*)
|
--target-host=*)
|
||||||
TARGET_HOST="${i#*=}"
|
TARGET_HOST="${i#*=}"
|
||||||
shift
|
shift # past argument=value
|
||||||
;;
|
|
||||||
--current-host=*)
|
|
||||||
CURRENT_HOST="${i#*=}"
|
|
||||||
shift
|
|
||||||
;;
|
;;
|
||||||
--clean)
|
--clean)
|
||||||
CLEAN=1
|
CLEAN=1
|
||||||
EXIT_AFTER_CLEAN=1
|
EXIT_AFTER_CLEAN=1
|
||||||
shift
|
shift # past argument=value
|
||||||
;;
|
;;
|
||||||
--reconfigure)
|
--reconfigure)
|
||||||
CLEAN=1
|
CLEAN=1
|
||||||
shift
|
shift # past argument=value
|
||||||
;;
|
;;
|
||||||
-h|--help)
|
-h|--help)
|
||||||
echo "Usage : ./configure [OPTION]..."
|
echo "Usage : ./configure [OPTION]..."
|
||||||
|
|
@ -56,9 +51,6 @@ for i in "$@"; do
|
||||||
echo -e "\033[1m --target-host=\033[mHOST"
|
echo -e "\033[1m --target-host=\033[mHOST"
|
||||||
echo -e "\tselect target host platform, default is \"guess\" and"
|
echo -e "\tselect target host platform, default is \"guess\" and"
|
||||||
echo -e "\twill try to configure for your current OS"
|
echo -e "\twill try to configure for your current OS"
|
||||||
echo -e "\033[1m --current-host=\033[mHOST"
|
|
||||||
echo -e "\tselect current host platform, default is \"guess\" and"
|
|
||||||
echo -e "\twill try to detect your current OS"
|
|
||||||
echo -e "\033[1m --clean\033[m"
|
echo -e "\033[1m --clean\033[m"
|
||||||
echo -e "\tclean build, config, cache, etc, and exit"
|
echo -e "\tclean build, config, cache, etc, and exit"
|
||||||
echo -e "\033[1m --reconfigure\033[m"
|
echo -e "\033[1m --reconfigure\033[m"
|
||||||
|
|
@ -86,7 +78,6 @@ if [ -n "${EXIT_AFTER_CLEAN}" ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
## Deduce current and target hosts
|
## Deduce current and target hosts
|
||||||
if [ "${CURRENT_HOST}" = "guess" ]; then
|
|
||||||
case "${OSTYPE}" in
|
case "${OSTYPE}" in
|
||||||
linux*)
|
linux*)
|
||||||
CURRENT_HOST="linux"
|
CURRENT_HOST="linux"
|
||||||
|
|
@ -101,7 +92,6 @@ if [ "${CURRENT_HOST}" = "guess" ]; then
|
||||||
print_error "Current detected os is unsuppoted to build from: ${OSTYPE}\nUse --help for more informations."
|
print_error "Current detected os is unsuppoted to build from: ${OSTYPE}\nUse --help for more informations."
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Configuring for current host: ${CURRENT_HOST}"
|
echo "Configuring for current host: ${CURRENT_HOST}"
|
||||||
|
|
||||||
|
|
@ -111,8 +101,8 @@ fi
|
||||||
|
|
||||||
case "${CURRENT_HOST}" in
|
case "${CURRENT_HOST}" in
|
||||||
linux)
|
linux)
|
||||||
HOST_CC="gcc"
|
ASSET_BUILDER_CC="gcc"
|
||||||
HOST_AR="ar"
|
ASSET_BUILDER_AR="ar"
|
||||||
ASSET_BUILDER_CFLAGS="--std=c17 -O2 \$(shell pkg-config --cflags libpng json-c)"
|
ASSET_BUILDER_CFLAGS="--std=c17 -O2 \$(shell pkg-config --cflags libpng json-c)"
|
||||||
ASSET_BUILDER_LDFLAGS="\$(shell pkg-config --libs libpng json-c)"
|
ASSET_BUILDER_LDFLAGS="\$(shell pkg-config --libs libpng json-c)"
|
||||||
;;
|
;;
|
||||||
|
|
@ -127,16 +117,17 @@ case "${TARGET_HOST}" in
|
||||||
|
|
||||||
case "${CURRENT_HOST}" in
|
case "${CURRENT_HOST}" in
|
||||||
linux)
|
linux)
|
||||||
TARGET_HOST_CC="gcc"
|
|
||||||
TARGET_HOST_AR="ar"
|
|
||||||
TARGET_HOST_CFLAGS="--std=c17 -Os -DASSET_FILE_NAME=\\\"\$(notdir \$(ASSET_OUTPUT))\\\" -D_GNU_SOURCE=1 \$(shell pkg-config --cflags sdl3 lua)"
|
|
||||||
TARGET_HOST_LDFLAGS="\$(shell pkg-config --libs sdl3 lua) -lm"
|
|
||||||
TARGET_HOST_LIBCORE="libcore.a"
|
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
print_error "Cross compiling from ${CURRENT_HOST} for ${TARGET_HOST} is not supported yet."
|
print_error "Cross compiling from ${CURRENT_HOST} to ${TARGET_HOST} is not supported yet."
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
TARGET_CC="gcc"
|
||||||
|
TARGET_AR="ar"
|
||||||
|
TARGET_CFLAGS="--std=c17 -Os -DASSET_FILE_NAME=\\\"\$(notdir \$(ASSET_OUTPUT))\\\" -D_GNU_SOURCE=1 \$(shell pkg-config --cflags sdl3)"
|
||||||
|
TARGET_LDFLAGS="\$(shell pkg-config --libs sdl3) -lm"
|
||||||
|
TARGET_LIBCORE="libcore.a"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
fxcg50)
|
fxcg50)
|
||||||
|
|
@ -144,16 +135,17 @@ case "${TARGET_HOST}" in
|
||||||
|
|
||||||
case "${CURRENT_HOST}" in
|
case "${CURRENT_HOST}" in
|
||||||
linux)
|
linux)
|
||||||
TARGET_HOST_CC="sh-elf-gcc"
|
|
||||||
TARGET_HOST_AR="sh-elf-ar"
|
|
||||||
TARGET_HOST_CFLAGS="--std=c17 -Os"
|
|
||||||
TARGET_HOST_LDFLAGS=""
|
|
||||||
TARGET_HOST_LIBCORE="libcore.a"
|
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
print_error "Cross compiling from ${CURRENT_HOST} for ${TARGET_HOST} is not supported yet."
|
print_error "Cross compiling from ${CURRENT_HOST} to ${TARGET_HOST} is not supported yet."
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
TARGET_CC="sh-elf-gcc"
|
||||||
|
TARGET_AR="sh-elf-ar"
|
||||||
|
TARGET_CFLAGS="--std=c17 -O3"
|
||||||
|
TARGET_LDFLAGS=""
|
||||||
|
TARGET_LIBCORE="libcore.a"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
print_error "Unsupported target host: ${TARGET_HOST}"
|
print_error "Unsupported target host: ${TARGET_HOST}"
|
||||||
|
|
@ -163,24 +155,22 @@ echo "Writing config file."
|
||||||
echo
|
echo
|
||||||
echo "${CONFIG_FILE}:"
|
echo "${CONFIG_FILE}:"
|
||||||
echo "\`\`\`"
|
echo "\`\`\`"
|
||||||
|
tee ${CONFIG_FILE} <<EOF
|
||||||
tee "${CONFIG_FILE}" <<EOF
|
|
||||||
# This file was generated by the configure script.
|
# This file was generated by the configure script.
|
||||||
|
|
||||||
TARGET_HOST = ${TARGET_HOST}
|
TARGET_HOST = ${TARGET_HOST}
|
||||||
LIBCORE = ${TARGET_HOST_LIBCORE}
|
LIBCORE = ${TARGET_LIBCORE}
|
||||||
|
|
||||||
TARGET_HOST_CC = ${TARGET_HOST_CC}
|
TARGET_HOST_CC = ${TARGET_CC}
|
||||||
TARGET_HOST_AR = ${TARGET_HOST_AR}
|
TARGET_HOST_AR = ${TARGET_AR}
|
||||||
TARGET_HOST_CFLAGS = ${TARGET_HOST_CFLAGS}
|
TARGET_HOST_CFLAGS = ${TARGET_CFLAGS}
|
||||||
TARGET_HOST_LDFLAGS = ${TARGET_HOST_LDFLAGS}
|
TARGET_HOST_LDFLAGS = ${TARGET_LDFLAGS}
|
||||||
|
|
||||||
HOST_CC = ${HOST_CC}
|
|
||||||
|
|
||||||
|
ASSET_BUILDER_CC = ${ASSET_BUILDER_CC}
|
||||||
|
ASSET_BUILDER_AR = ${ASSET_BUILDER_AR}
|
||||||
ASSET_BUILDER_CFLAGS = ${ASSET_BUILDER_CFLAGS}
|
ASSET_BUILDER_CFLAGS = ${ASSET_BUILDER_CFLAGS}
|
||||||
ASSET_BUILDER_LDFLAGS = ${ASSET_BUILDER_LDFLAGS}
|
ASSET_BUILDER_LDFLAGS = ${ASSET_BUILDER_LDFLAGS}
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
echo "\`\`\`"
|
echo "\`\`\`"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
gcc
|
||||||
|
# Headers
|
||||||
|
-Icore
|
||||||
|
-Icore/host/generic
|
||||||
|
-Isrc/components
|
||||||
|
|
||||||
|
# Macros
|
||||||
|
-DASSET_FILE_NAME="$(make print-var-ASSET_OUTPUT)"
|
||||||
|
|
@ -24,14 +24,14 @@ endif
|
||||||
$(LIBCORE): $(OBJECTS)
|
$(LIBCORE): $(OBJECTS)
|
||||||
$(eval CURRENT_FILE := $(shell echo $$(($(CURRENT_FILE) + 1))))
|
$(eval CURRENT_FILE := $(shell echo $$(($(CURRENT_FILE) + 1))))
|
||||||
$(eval PERCENTAGE := $(shell echo $$(($(CURRENT_FILE) * 100 / $(TOTAL_BUILD_FILES)))))
|
$(eval PERCENTAGE := $(shell echo $$(($(CURRENT_FILE) * 100 / $(TOTAL_BUILD_FILES)))))
|
||||||
@echo "[$(PERCENTAGE)%] $(YELLOW)Creating Static Lib $@$(RESET)"
|
@echo -e "[$(PERCENTAGE)%] $(YELLOW)Creating Static Lib $@$(RESET)"
|
||||||
$(Q)$(TARGET_HOST_AR) rcs $@ $(OBJECTS)
|
$(Q)$(TARGET_HOST_AR) rcs $@ $(OBJECTS)
|
||||||
|
|
||||||
$(BUILD_DIR)/$(notdir $(CORE_DIR))/%.o: $(CORE_DIR)/%
|
$(BUILD_DIR)/$(notdir $(CORE_DIR))/%.o: $(CORE_DIR)/%
|
||||||
$(Q)mkdir -p $(dir $@)
|
$(Q)mkdir -p $(dir $@)
|
||||||
$(eval CURRENT_FILE := $(shell echo $$(($(CURRENT_FILE) + 1))))
|
$(eval CURRENT_FILE := $(shell echo $$(($(CURRENT_FILE) + 1))))
|
||||||
$(eval PERCENTAGE := $(shell echo $$(($(CURRENT_FILE) * 100 / $(TOTAL_BUILD_FILES)))))
|
$(eval PERCENTAGE := $(shell echo $$(($(CURRENT_FILE) * 100 / $(TOTAL_BUILD_FILES)))))
|
||||||
@echo "[$(PERCENTAGE)%] $(GREEN)Building C object $@$(RESET)"
|
@echo -e "[$(PERCENTAGE)%] $(GREEN)Building C object $@$(RESET)"
|
||||||
$(Q)$(TARGET_HOST_CC) $(TARGET_HOST_CFLAGS) $(INCLUDES:%=-I%) -MMD -MP -c $< -o $@
|
$(Q)$(TARGET_HOST_CC) $(TARGET_HOST_CFLAGS) $(INCLUDES:%=-I%) -MMD -MP -c $< -o $@
|
||||||
|
|
||||||
-include $(OBJECTS:.o=.d)
|
-include $(OBJECTS:.o=.d)
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
gcc
|
||||||
|
# Headers
|
||||||
|
-Icore
|
||||||
|
-Icore/host/linux
|
||||||
|
-Isrc/components
|
||||||
|
|
@ -28,19 +28,14 @@ inline int display_init(void)
|
||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef DRIVERS
|
|
||||||
debug_printf("Listing available render drivers.");
|
debug_printf("Listing available render drivers.");
|
||||||
const int NB_DRIVERS = SDL_GetNumRenderDrivers();
|
const int NB_DRIVERS = SDL_GetNumRenderDrivers();
|
||||||
for(int i = 0; i < NB_DRIVERS; i++)
|
for(int i = 0; i < NB_DRIVERS; i++)
|
||||||
debug_printf("%d : %s", i, SDL_GetRenderDriver(i));
|
debug_printf("%d : %s", i, SDL_GetRenderDriver(i));
|
||||||
|
|
||||||
warning_printf("This build of 2D_Engine_C only support the following drivers : %s", DRIVERS);
|
if(DRIVERS) warning_printf("This build of 2D_Engine_C only support the following drivers : %s", DRIVERS);
|
||||||
|
|
||||||
game.display.renderer = SDL_CreateRenderer(game.display.window, DRIVERS);
|
game.display.renderer = SDL_CreateRenderer(game.display.window, DRIVERS);
|
||||||
#else
|
|
||||||
game.display.renderer = SDL_CreateRenderer(game.display.window, NULL);
|
|
||||||
#endif // DRIVERS
|
|
||||||
|
|
||||||
if(!game.display.renderer)
|
if(!game.display.renderer)
|
||||||
{
|
{
|
||||||
error_printf("Failed to create renderer : %s", SDL_GetError());
|
error_printf("Failed to create renderer : %s", SDL_GetError());
|
||||||
|
|
@ -58,13 +53,13 @@ inline int display_init(void)
|
||||||
error_printf("Failed to set renderer draw blend mode : %s", SDL_GetError());
|
error_printf("Failed to set renderer draw blend mode : %s", SDL_GetError());
|
||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
if(!SDL_SetDefaultTextureScaleMode(game.display.renderer, SDL_SCALEMODE_NEAREST))
|
if(!SDL_SetDefaultTextureScaleMode(game.display.renderer, SDL_SCALEMODE_NEAREST))
|
||||||
{
|
{
|
||||||
error_printf("Failed to set default texture scale mode : %s", SDL_GetError());
|
error_printf("Failed to set default texture scale mode : %s", SDL_GetError());
|
||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
debug_printf("Initialized display.");
|
debug_printf("Initialized display.");
|
||||||
|
|
||||||
return EXIT_SUCCESS;
|
return EXIT_SUCCESS;
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@
|
||||||
#define DISPLAY_WIDTH 720
|
#define DISPLAY_WIDTH 720
|
||||||
#define DISPLAY_HEIGHT 480
|
#define DISPLAY_HEIGHT 480
|
||||||
|
|
||||||
|
//#define DRIVERS NULL
|
||||||
#define DRIVERS "vulkan,gpu,software"
|
#define DRIVERS "vulkan,gpu,software"
|
||||||
|
|
||||||
typedef struct display_t {
|
typedef struct display_t {
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
gcc
|
||||||
|
# Headers
|
||||||
|
-Isrc/components
|
||||||
|
-Icore
|
||||||
|
-Icore/host/generic
|
||||||
|
|
@ -23,14 +23,14 @@ TOTAL_BUILD_FILES := $(shell echo $$(($$($(MAKE) -n $(OBJECTS) TOTAL_BUILD_FILES
|
||||||
endif
|
endif
|
||||||
|
|
||||||
$(OUTPUT): $(OBJECTS) $(LIBCORE)
|
$(OUTPUT): $(OBJECTS) $(LIBCORE)
|
||||||
@echo "[100%] $(YELLOW)Linking $(notdir $(OUTPUT))$(RESET)"
|
@echo -e "[100%] $(YELLOW)Linking $(notdir $(OUTPUT))$(RESET)"
|
||||||
$(Q)$(TARGET_HOST_CC) $(TARGET_HOST_CFLAGS) $(OBJECTS) -o $@ -L$(BUILD_DIR) -lcore $(TARGET_HOST_LDFLAGS)
|
$(Q)$(TARGET_HOST_CC) $(TARGET_HOST_CFLAGS) $(TARGET_HOST_LDFLAGS) $(OBJECTS) -L$(BUILD_DIR) -lcore -o $@
|
||||||
|
|
||||||
$(BUILD_DIR)/$(notdir $(SOURCE_DIR))/%.o: $(SOURCE_DIR)/%
|
$(BUILD_DIR)/$(notdir $(SOURCE_DIR))/%.o: $(SOURCE_DIR)/%
|
||||||
$(Q)mkdir -p $(dir $@)
|
$(Q)mkdir -p $(dir $@)
|
||||||
$(eval CURRENT_FILE := $(shell echo $$(($(CURRENT_FILE) + 1))))
|
$(eval CURRENT_FILE := $(shell echo $$(($(CURRENT_FILE) + 1))))
|
||||||
$(eval PERCENTAGE := $(shell echo $$(($(CURRENT_FILE) * 100 / $(TOTAL_BUILD_FILES)))))
|
$(eval PERCENTAGE := $(shell echo $$(($(CURRENT_FILE) * 100 / $(TOTAL_BUILD_FILES)))))
|
||||||
@echo "[$(PERCENTAGE)%] $(GREEN)Building C object $@$(RESET)"
|
@echo -e "[$(PERCENTAGE)%] $(GREEN)Building C object $@$(RESET)"
|
||||||
$(Q)$(TARGET_HOST_CC) $(TARGET_HOST_CFLAGS) $(INCLUDES:%=-I%) -MMD -MP -c $< -o $@
|
$(Q)$(TARGET_HOST_CC) $(TARGET_HOST_CFLAGS) $(INCLUDES:%=-I%) -MMD -MP -c $< -o $@
|
||||||
|
|
||||||
$(LIBCORE): FORCE
|
$(LIBCORE): FORCE
|
||||||
|
|
|
||||||
|
|
@ -6,12 +6,10 @@
|
||||||
COMPONENT(TRANSFORM_COMPONENT, transform_component, DRAW)
|
COMPONENT(TRANSFORM_COMPONENT, transform_component, DRAW)
|
||||||
COMPONENT(HITBOX_COMPONENT, hitbox_component, DRAW)
|
COMPONENT(HITBOX_COMPONENT, hitbox_component, DRAW)
|
||||||
COMPONENT(INTERACT_COMPONENT, interact_component, DRAW)
|
COMPONENT(INTERACT_COMPONENT, interact_component, DRAW)
|
||||||
COMPONENT(LUA_COMPONENT, lua_component, DRAW)
|
|
||||||
#else
|
#else
|
||||||
COMPONENT(TRANSFORM_COMPONENT, transform_component, NO_DRAW)
|
COMPONENT(TRANSFORM_COMPONENT, transform_component, NO_DRAW)
|
||||||
COMPONENT(HITBOX_COMPONENT, hitbox_component, NO_DRAW)
|
COMPONENT(HITBOX_COMPONENT, hitbox_component, NO_DRAW)
|
||||||
COMPONENT(INTERACT_COMPONENT, interact_component, NO_DRAW)
|
COMPONENT(INTERACT_COMPONENT, interact_component, NO_DRAW)
|
||||||
COMPONENT(LUA_COMPONENT, lua_component, NO_DRAW)
|
|
||||||
#endif // DEBUG >= 2
|
#endif // DEBUG >= 2
|
||||||
|
|
||||||
COMPONENT(PHYSICS_SYSTEM, physics_system, NO_DRAW)
|
COMPONENT(PHYSICS_SYSTEM, physics_system, NO_DRAW)
|
||||||
|
|
@ -20,6 +18,7 @@ COMPONENT(ANIMATION_SYSTEM, animation_system, NO_DRAW)
|
||||||
COMPONENT(PLAYER_SYSTEM, player_system, NO_DRAW)
|
COMPONENT(PLAYER_SYSTEM, player_system, NO_DRAW)
|
||||||
COMPONENT(LEVER_COMPONENT, lever_component, NO_DRAW)
|
COMPONENT(LEVER_COMPONENT, lever_component, NO_DRAW)
|
||||||
COMPONENT(DOOR_COMPONENT, door_component, NO_DRAW)
|
COMPONENT(DOOR_COMPONENT, door_component, NO_DRAW)
|
||||||
|
// COMPONENT(LUA_COMPONENT, lua_component, NO_DRAW)
|
||||||
// Add new components definition here
|
// Add new components definition here
|
||||||
|
|
||||||
#undef COMPONENT
|
#undef COMPONENT
|
||||||
|
|
|
||||||
|
|
@ -1,51 +1,6 @@
|
||||||
#include "lua_component.h"
|
#ifndef LUA_COMPONENT_H
|
||||||
|
#define LUA_COMPONENT_H
|
||||||
|
|
||||||
#include <lua.h>
|
|
||||||
#include <lauxlib.h>
|
|
||||||
#include <lualib.h>
|
|
||||||
#include "game.h"
|
|
||||||
#include "ecs.h"
|
|
||||||
#include "memory_alloc.h"
|
|
||||||
#include "errors.h"
|
|
||||||
|
|
||||||
inline int lua_component_init(component_t *component)
|
|
||||||
{
|
|
||||||
lua_component_data_t *component_data = component->data;
|
|
||||||
|
|
||||||
component_data->lua_state = luaL_newstate();
|
#endif // LUA_COMPONENT_H
|
||||||
|
|
||||||
luaL_openlibs(component_data->lua_state);
|
|
||||||
|
|
||||||
luaL_dostring(component_data->lua_state, "function f (a) print(a) end");
|
|
||||||
|
|
||||||
return EXIT_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
inline int lua_component_update(component_t *component __attribute__((unused)))
|
|
||||||
{
|
|
||||||
lua_component_data_t *component_data = component->data;
|
|
||||||
|
|
||||||
luaL_dostring(component_data->lua_state, "f(\"prout\")");
|
|
||||||
|
|
||||||
return EXIT_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
#if DEBUG >= 2
|
|
||||||
#include "display.h"
|
|
||||||
|
|
||||||
inline int lua_component_draw(const component_t *component)
|
|
||||||
{
|
|
||||||
return EXIT_SUCCESS;
|
|
||||||
}
|
|
||||||
#endif // DEBUG >= 2
|
|
||||||
|
|
||||||
inline int lua_component_destroy(component_t *component)
|
|
||||||
{
|
|
||||||
lua_component_data_t *component_data = component->data;
|
|
||||||
|
|
||||||
lua_close(component_data->lua_state);
|
|
||||||
|
|
||||||
free(component_data);
|
|
||||||
|
|
||||||
return EXIT_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
#ifndef LUA_COMPONENT_H
|
|
||||||
#define LUA_COMPONENT_H
|
|
||||||
|
|
||||||
#include <lua.h>
|
|
||||||
#include "ecs.h"
|
|
||||||
#include "errors.h"
|
|
||||||
|
|
||||||
typedef struct lua_component_data_t {
|
|
||||||
lua_State *lua_state;
|
|
||||||
} lua_component_data_t;
|
|
||||||
|
|
||||||
int lua_component_init(component_t *component);
|
|
||||||
int lua_component_update(component_t *component);
|
|
||||||
#if DEBUG >= 2
|
|
||||||
int lua_component_draw(const component_t *component);
|
|
||||||
#endif // DEBUG >= 2
|
|
||||||
int lua_component_destroy(component_t *component);
|
|
||||||
|
|
||||||
#endif // LUA_COMPONENT_H
|
|
||||||
10
src/game.c
10
src/game.c
|
|
@ -21,7 +21,7 @@ int game_init(void)
|
||||||
entity_manager_init();
|
entity_manager_init();
|
||||||
if(asset_manager_init()) return_failure_int;
|
if(asset_manager_init()) return_failure_int;
|
||||||
|
|
||||||
asset_t *map_asset = asset_manager_load_asset("dungeon_entry", ASSET_MAP);
|
asset_t *map_asset = asset_manager_load_asset("dungeon_room_1", ASSET_MAP);
|
||||||
if(!map_asset) return_failure_int;
|
if(!map_asset) return_failure_int;
|
||||||
|
|
||||||
game.map = map_asset->data;
|
game.map = map_asset->data;
|
||||||
|
|
@ -118,15 +118,7 @@ int game_init(void)
|
||||||
|
|
||||||
if(!entity_new_component(player_entity, PLAYER_SYSTEM)) return_failure_int;
|
if(!entity_new_component(player_entity, PLAYER_SYSTEM)) return_failure_int;
|
||||||
}
|
}
|
||||||
/* ======== Enemy ======== */
|
|
||||||
/*
|
|
||||||
{
|
|
||||||
entity_t *enemy_entity = entity_manager_new_entity(1);
|
|
||||||
if(!enemy_entity) return_failure_int;
|
|
||||||
|
|
||||||
if(!entity_new_component(enemy_entity, LUA_COMPONENT)) return_failure_int;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
game.is_running = true;
|
game.is_running = true;
|
||||||
|
|
||||||
return EXIT_SUCCESS;
|
return EXIT_SUCCESS;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue