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
|
||||
"version": "0.2.0",
|
||||
"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": {
|
||||
"*.tsx": "xml",
|
||||
"*.map": "json",
|
||||
"configure": "shellscript",
|
||||
"configure": "shellscript"
|
||||
}
|
||||
}
|
||||
|
|
@ -54,25 +54,6 @@
|
|||
"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",
|
||||
"detail": "Build project with verbosity on",
|
||||
|
|
@ -91,25 +72,6 @@
|
|||
"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",
|
||||
"detail": "Build project in debug mode and run",
|
||||
|
|
@ -129,6 +91,25 @@
|
|||
"showReuseMessage": 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))))
|
||||
|
||||
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
|
||||
#
|
||||
|
|
@ -26,28 +34,12 @@ TARGET_HOST_CFLAGS += -O1 -g -DDEBUG=$(DEBUG) -Wextra -Wall --pedantic -Wno-miss
|
|||
-Wstrict-prototypes -Winline -Wundef -Wnested-externs -Wcast-qual \
|
||||
-Wshadow -Wunreachable-code -Wlogical-op -Wfloat-equal -Wstrict-aliasing=2 \
|
||||
-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
|
||||
|
||||
#
|
||||
# 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
|
||||
BUILD_DIR := $(ROOT)/$(BUILD_DIR)/$(TARGET_HOST)
|
||||
|
||||
|
|
|
|||
4
TODO.md
4
TODO.md
|
|
@ -28,9 +28,9 @@
|
|||
|
||||
- [ ] Create lua component
|
||||
|
||||
### Done
|
||||
- [ ] Rethink makefile structure
|
||||
|
||||
- [x] Rethink makefile structure
|
||||
### Done
|
||||
|
||||
- [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)
|
||||
$(Q)mkdir -p $(dir $@)
|
||||
$(Q)$(HOST_CC) $(ASSET_BUILDER_CFLAGS) $(OBJECTS) -o $@ $(ASSET_BUILDER_LDFLAGS)
|
||||
@echo "[100%] $(YELLOW)Linking $(notdir $(ASSET_BUILDER_OUTPUT))$(RESET)"
|
||||
@echo -e "[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)/%
|
||||
$(Q)mkdir -p $(dir $@)
|
||||
$(eval CURRENT_FILE := $(shell echo $$(($(CURRENT_FILE)+1))))
|
||||
$(eval PERCENTAGE := $(shell echo $$(($(CURRENT_FILE)*100/$(TOTAL_BUILD_FILES)))))
|
||||
$(Q)$(HOST_CC) $(ASSET_BUILDER_CFLAGS) $(INCLUDES:%=-I%) -MMD -MP -c $< -o $@
|
||||
@echo "[$(PERCENTAGE)%] $(GREEN)Building C object $@$(RESET)"
|
||||
@echo -e "[$(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)
|
||||
|
|
|
|||
|
|
@ -9,9 +9,6 @@ ASSETS := \
|
|||
maps/dungeon_entry.map \
|
||||
maps/dungeon_room_1.map
|
||||
|
||||
LUA_SOURCES := \
|
||||
enemy_system.lua
|
||||
|
||||
OBJECTS := $(ASSETS:%=$(BUILD_DIR)/$(notdir $(ASSETS_DIR))/%.o)
|
||||
|
||||
ifeq ($(TOTAL_BUILD_FILES),)
|
||||
|
|
@ -19,14 +16,14 @@ TOTAL_BUILD_FILES := $(shell echo $$(($$($(MAKE) -n $(OBJECTS) TOTAL_BUILD_FILES
|
|||
endif
|
||||
|
||||
$(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)
|
||||
|
||||
$(BUILD_DIR)/$(notdir $(ASSETS_DIR))/%.o: $(ASSETS_DIR)/% $(ASSET_BUILDER_OUTPUT)
|
||||
$(Q)mkdir -p $(dir $@)
|
||||
$(eval CURRENT_FILE := $(shell echo $$(($(CURRENT_FILE) + 1))))
|
||||
$(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 $<
|
||||
|
||||
$(ASSET_BUILDER_OUTPUT): FORCE
|
||||
|
|
|
|||
|
|
@ -26,27 +26,22 @@ print_error()
|
|||
}
|
||||
|
||||
## Parse args
|
||||
CURRENT_HOST="guess"
|
||||
TARGET_HOST="guess"
|
||||
|
||||
for i in "$@"; do
|
||||
case $i in
|
||||
--target-host=*)
|
||||
TARGET_HOST="${i#*=}"
|
||||
shift
|
||||
;;
|
||||
--current-host=*)
|
||||
CURRENT_HOST="${i#*=}"
|
||||
shift
|
||||
shift # past argument=value
|
||||
;;
|
||||
--clean)
|
||||
CLEAN=1
|
||||
EXIT_AFTER_CLEAN=1
|
||||
shift
|
||||
shift # past argument=value
|
||||
;;
|
||||
--reconfigure)
|
||||
CLEAN=1
|
||||
shift
|
||||
shift # past argument=value
|
||||
;;
|
||||
-h|--help)
|
||||
echo "Usage : ./configure [OPTION]..."
|
||||
|
|
@ -56,9 +51,6 @@ for i in "$@"; do
|
|||
echo -e "\033[1m --target-host=\033[mHOST"
|
||||
echo -e "\tselect target host platform, default is \"guess\" and"
|
||||
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 "\tclean build, config, cache, etc, and exit"
|
||||
echo -e "\033[1m --reconfigure\033[m"
|
||||
|
|
@ -86,7 +78,6 @@ if [ -n "${EXIT_AFTER_CLEAN}" ]; then
|
|||
fi
|
||||
|
||||
## Deduce current and target hosts
|
||||
if [ "${CURRENT_HOST}" = "guess" ]; then
|
||||
case "${OSTYPE}" in
|
||||
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."
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
echo "Configuring for current host: ${CURRENT_HOST}"
|
||||
|
||||
|
|
@ -111,8 +101,8 @@ fi
|
|||
|
||||
case "${CURRENT_HOST}" in
|
||||
linux)
|
||||
HOST_CC="gcc"
|
||||
HOST_AR="ar"
|
||||
ASSET_BUILDER_CC="gcc"
|
||||
ASSET_BUILDER_AR="ar"
|
||||
ASSET_BUILDER_CFLAGS="--std=c17 -O2 \$(shell pkg-config --cflags 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
|
||||
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
|
||||
|
||||
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)
|
||||
|
|
@ -144,16 +135,17 @@ case "${TARGET_HOST}" in
|
|||
|
||||
case "${CURRENT_HOST}" in
|
||||
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
|
||||
|
||||
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}"
|
||||
|
|
@ -163,24 +155,22 @@ echo "Writing config file."
|
|||
echo
|
||||
echo "${CONFIG_FILE}:"
|
||||
echo "\`\`\`"
|
||||
|
||||
tee "${CONFIG_FILE}" <<EOF
|
||||
tee ${CONFIG_FILE} <<EOF
|
||||
# This file was generated by the configure script.
|
||||
|
||||
TARGET_HOST = ${TARGET_HOST}
|
||||
LIBCORE = ${TARGET_HOST_LIBCORE}
|
||||
LIBCORE = ${TARGET_LIBCORE}
|
||||
|
||||
TARGET_HOST_CC = ${TARGET_HOST_CC}
|
||||
TARGET_HOST_AR = ${TARGET_HOST_AR}
|
||||
TARGET_HOST_CFLAGS = ${TARGET_HOST_CFLAGS}
|
||||
TARGET_HOST_LDFLAGS = ${TARGET_HOST_LDFLAGS}
|
||||
|
||||
HOST_CC = ${HOST_CC}
|
||||
TARGET_HOST_CC = ${TARGET_CC}
|
||||
TARGET_HOST_AR = ${TARGET_AR}
|
||||
TARGET_HOST_CFLAGS = ${TARGET_CFLAGS}
|
||||
TARGET_HOST_LDFLAGS = ${TARGET_LDFLAGS}
|
||||
|
||||
ASSET_BUILDER_CC = ${ASSET_BUILDER_CC}
|
||||
ASSET_BUILDER_AR = ${ASSET_BUILDER_AR}
|
||||
ASSET_BUILDER_CFLAGS = ${ASSET_BUILDER_CFLAGS}
|
||||
ASSET_BUILDER_LDFLAGS = ${ASSET_BUILDER_LDFLAGS}
|
||||
EOF
|
||||
|
||||
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)
|
||||
$(eval CURRENT_FILE := $(shell echo $$(($(CURRENT_FILE) + 1))))
|
||||
$(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)
|
||||
|
||||
$(BUILD_DIR)/$(notdir $(CORE_DIR))/%.o: $(CORE_DIR)/%
|
||||
$(Q)mkdir -p $(dir $@)
|
||||
$(eval CURRENT_FILE := $(shell echo $$(($(CURRENT_FILE) + 1))))
|
||||
$(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 $@
|
||||
|
||||
-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;
|
||||
}
|
||||
|
||||
#ifdef DRIVERS
|
||||
debug_printf("Listing available render drivers.");
|
||||
const int NB_DRIVERS = SDL_GetNumRenderDrivers();
|
||||
for(int i = 0; i < NB_DRIVERS; 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);
|
||||
#else
|
||||
game.display.renderer = SDL_CreateRenderer(game.display.window, NULL);
|
||||
#endif // DRIVERS
|
||||
|
||||
if(!game.display.renderer)
|
||||
{
|
||||
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());
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
/*
|
||||
|
||||
if(!SDL_SetDefaultTextureScaleMode(game.display.renderer, SDL_SCALEMODE_NEAREST))
|
||||
{
|
||||
error_printf("Failed to set default texture scale mode : %s", SDL_GetError());
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
*/
|
||||
|
||||
debug_printf("Initialized display.");
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
#define DISPLAY_WIDTH 720
|
||||
#define DISPLAY_HEIGHT 480
|
||||
|
||||
//#define DRIVERS NULL
|
||||
#define DRIVERS "vulkan,gpu,software"
|
||||
|
||||
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
|
||||
|
||||
$(OUTPUT): $(OBJECTS) $(LIBCORE)
|
||||
@echo "[100%] $(YELLOW)Linking $(notdir $(OUTPUT))$(RESET)"
|
||||
$(Q)$(TARGET_HOST_CC) $(TARGET_HOST_CFLAGS) $(OBJECTS) -o $@ -L$(BUILD_DIR) -lcore $(TARGET_HOST_LDFLAGS)
|
||||
@echo -e "[100%] $(YELLOW)Linking $(notdir $(OUTPUT))$(RESET)"
|
||||
$(Q)$(TARGET_HOST_CC) $(TARGET_HOST_CFLAGS) $(TARGET_HOST_LDFLAGS) $(OBJECTS) -L$(BUILD_DIR) -lcore -o $@
|
||||
|
||||
$(BUILD_DIR)/$(notdir $(SOURCE_DIR))/%.o: $(SOURCE_DIR)/%
|
||||
$(Q)mkdir -p $(dir $@)
|
||||
$(eval CURRENT_FILE := $(shell echo $$(($(CURRENT_FILE) + 1))))
|
||||
$(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 $@
|
||||
|
||||
$(LIBCORE): FORCE
|
||||
|
|
|
|||
|
|
@ -6,12 +6,10 @@
|
|||
COMPONENT(TRANSFORM_COMPONENT, transform_component, DRAW)
|
||||
COMPONENT(HITBOX_COMPONENT, hitbox_component, DRAW)
|
||||
COMPONENT(INTERACT_COMPONENT, interact_component, DRAW)
|
||||
COMPONENT(LUA_COMPONENT, lua_component, DRAW)
|
||||
#else
|
||||
COMPONENT(TRANSFORM_COMPONENT, transform_component, NO_DRAW)
|
||||
COMPONENT(HITBOX_COMPONENT, hitbox_component, NO_DRAW)
|
||||
COMPONENT(INTERACT_COMPONENT, interact_component, NO_DRAW)
|
||||
COMPONENT(LUA_COMPONENT, lua_component, NO_DRAW)
|
||||
#endif // DEBUG >= 2
|
||||
|
||||
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(LEVER_COMPONENT, lever_component, NO_DRAW)
|
||||
COMPONENT(DOOR_COMPONENT, door_component, NO_DRAW)
|
||||
// COMPONENT(LUA_COMPONENT, lua_component, NO_DRAW)
|
||||
// Add new components definition here
|
||||
|
||||
#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();
|
||||
|
||||
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;
|
||||
}
|
||||
#endif // LUA_COMPONENT_H
|
||||
|
|
@ -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();
|
||||
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;
|
||||
|
||||
game.map = map_asset->data;
|
||||
|
|
@ -118,15 +118,7 @@ int game_init(void)
|
|||
|
||||
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;
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
|
|
|
|||
Loading…
Reference in New Issue