From 510a94b42c53b176d43bbcf4a51e329b9c1fac86 Mon Sep 17 00:00:00 2001 From: Dominic Masters Date: Wed, 20 May 2026 21:34:00 -0500 Subject: [PATCH] Remove Jerryscript further --- cmake/modules/Findjerryscript.cmake | 96 --------------------------- cmake/targets/psp.cmake | 7 -- src/dusk/cutscene/cutscene.h | 7 +- src/dusk/engine/engine.c | 10 --- src/dusk/scene/CMakeLists.txt | 5 +- src/dusk/scene/initial/CMakeLists.txt | 10 +++ src/dusk/scene/initial/initialscene.c | 8 +++ src/dusk/scene/initial/initialscene.h | 21 ++++++ src/dusk/scene/scene.c | 29 +++++--- src/dusk/scene/scene.h | 11 +-- 10 files changed, 73 insertions(+), 131 deletions(-) delete mode 100644 cmake/modules/Findjerryscript.cmake create mode 100644 src/dusk/scene/initial/CMakeLists.txt create mode 100644 src/dusk/scene/initial/initialscene.c create mode 100644 src/dusk/scene/initial/initialscene.h diff --git a/cmake/modules/Findjerryscript.cmake b/cmake/modules/Findjerryscript.cmake deleted file mode 100644 index b0722855..00000000 --- a/cmake/modules/Findjerryscript.cmake +++ /dev/null @@ -1,96 +0,0 @@ -# Copyright (c) 2026 Dominic Masters -# -# This software is released under the MIT License. -# https://opensource.org/licenses/MIT - -# Turn things off we don't need -set(JERRY_CMDLINE OFF CACHE BOOL "" FORCE) -set(JERRY_EXT ON CACHE BOOL "" FORCE) -set(JERRY_DEBUGGER OFF CACHE BOOL "" FORCE) -set(JERRY_BUILTIN_DATE OFF CACHE BOOL "" FORCE) -set(ENABLE_LTO OFF CACHE BOOL "" FORCE) - -# Fetch Jerry -include(FetchContent) -FetchContent_Declare( - jerryscript - GIT_REPOSITORY https://git.wish.moe/YourWishes/jerryscript - GIT_TAG float32-fix -) -FetchContent_MakeAvailable(jerryscript) - -# Mark found -set(jerryscript_FOUND ON) - -# Define targets -if(TARGET jerryscript-core) - set(JERRY_CORE_TARGET jerryscript-core) -elseif(TARGET jerry-core) - set(JERRY_CORE_TARGET jerry-core) -endif() - -if(TARGET jerryscript-ext) - set(JERRY_EXT_TARGET jerryscript-ext) -elseif(TARGET jerry-ext) - set(JERRY_EXT_TARGET jerry-ext) -endif() - -if(TARGET jerryscript-port-default) - set(JERRY_PORT_TARGET jerryscript-port-default) -elseif(TARGET jerry-port-default) - set(JERRY_PORT_TARGET jerry-port-default) -elseif(TARGET jerryscript-port) - set(JERRY_PORT_TARGET jerryscript-port) -elseif(TARGET jerry-port) - set(JERRY_PORT_TARGET jerry-port) -endif() - -if(NOT JERRY_CORE_TARGET) - message(FATAL_ERROR "JerryScript core target not found") -endif() - -if(NOT JERRY_EXT_TARGET) - message(FATAL_ERROR "JerryScript ext target not found") -endif() - -if(NOT JERRY_PORT_TARGET) - message(FATAL_ERROR "JerryScript port target not found") -endif() - -foreach(tgt IN ITEMS - ${JERRY_CORE_TARGET} - ${JERRY_EXT_TARGET} - ${JERRY_PORT_TARGET} -) - if(TARGET ${tgt}) - set_property(TARGET ${tgt} PROPERTY INTERPROCEDURAL_OPTIMIZATION OFF) - target_compile_definitions(${JERRY_CORE_TARGET} PRIVATE - JERRY_NUMBER_TYPE_FLOAT64=0 - JERRY_BUILTIN_DATE=0 - ) - endif() -endforeach() - -# Export include dirs through the targets -target_include_directories(${JERRY_CORE_TARGET} INTERFACE - ${jerryscript_SOURCE_DIR}/jerry-core/include -) - -target_include_directories(${JERRY_EXT_TARGET} INTERFACE - ${jerryscript_SOURCE_DIR}/jerry-ext/include -) - -target_include_directories(${JERRY_PORT_TARGET} INTERFACE - ${jerryscript_SOURCE_DIR}/jerry-port/default/include -) - -# Suppress JerryScript-only warning -if(CMAKE_C_COMPILER_ID MATCHES "GNU|Clang") - target_compile_options(${JERRY_CORE_TARGET} PRIVATE - -Wno-error - ) -endif() - -add_library(jerryscript::core ALIAS ${JERRY_CORE_TARGET}) -add_library(jerryscript::ext ALIAS ${JERRY_EXT_TARGET}) -add_library(jerryscript::port ALIAS ${JERRY_PORT_TARGET}) diff --git a/cmake/targets/psp.cmake b/cmake/targets/psp.cmake index ca4bd937..242791d0 100644 --- a/cmake/targets/psp.cmake +++ b/cmake/targets/psp.cmake @@ -1,4 +1,3 @@ -# Fixes some problems building JerryScript set(CMAKE_AR "$ENV{PSPDEV}/bin/psp-ar" CACHE FILEPATH "" FORCE) set(CMAKE_RANLIB "$ENV{PSPDEV}/bin/psp-ranlib" CACHE FILEPATH "" FORCE) set(CMAKE_C_COMPILER_AR "$ENV{PSPDEV}/bin/psp-ar" CACHE FILEPATH "" FORCE) @@ -8,9 +7,7 @@ set(CMAKE_C_ARCHIVE_APPEND "$ENV{PSPDEV}/bin/psp-ar q ") set(CMAKE_INTERPROCEDURAL_OPTIMIZATION OFF CACHE BOOL "" FORCE) set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_C OFF CACHE BOOL "" FORCE) -set(JERRY_LTO OFF CACHE BOOL "" FORCE) -find_package(jerryscript REQUIRED) find_package(SDL2 REQUIRED) find_package(OpenGL REQUIRED) target_link_libraries(${DUSK_BINARY_TARGET_NAME} PUBLIC @@ -42,10 +39,6 @@ target_link_libraries(${DUSK_BINARY_TARGET_NAME} PUBLIC pspnet_apctl psphttp pspssl - - jerryscript::core - jerryscript::ext - jerryscript::port ) target_include_directories(${DUSK_BINARY_TARGET_NAME} PRIVATE diff --git a/src/dusk/cutscene/cutscene.h b/src/dusk/cutscene/cutscene.h index 8fb0446d..1a294eed 100644 --- a/src/dusk/cutscene/cutscene.h +++ b/src/dusk/cutscene/cutscene.h @@ -7,12 +7,11 @@ #include "error/error.h" #define CUTSCENE_EVENT_COUNT_MAX 16 -#define CUTSCENE_SCRIPT_REF_NONE ((jerry_value_t)0) typedef struct { - errorret_t (*onStart)(void); - errorret_t (*onEnd)(void); - errorret_t (*onUpdate)(void); + errorret_t (*onStart)(void); + errorret_t (*onEnd)(void); + errorret_t (*onUpdate)(void); } cutsceneevent_t; typedef struct { diff --git a/src/dusk/engine/engine.c b/src/dusk/engine/engine.c index 3bc75db6..b9988487 100644 --- a/src/dusk/engine/engine.c +++ b/src/dusk/engine/engine.c @@ -26,16 +26,6 @@ #include "item/backpack.h" #include "save/save.h" -double jerry_port_current_time(void) { - dusktimeepoch_t epoch = timeGetEpoch(); - return epoch.time * 1000.0; -} - -int32_t jerry_port_local_tza(double unix_ms) { - (void) unix_ms; - return 0; -} - engine_t ENGINE; errorret_t engineInit(const int32_t argc, const char_t **argv) { diff --git a/src/dusk/scene/CMakeLists.txt b/src/dusk/scene/CMakeLists.txt index 5a9fe3d6..dc56a6b7 100644 --- a/src/dusk/scene/CMakeLists.txt +++ b/src/dusk/scene/CMakeLists.txt @@ -7,4 +7,7 @@ target_sources(${DUSK_LIBRARY_TARGET_NAME} PUBLIC scene.c -) \ No newline at end of file +) + +# Subdirectories +add_subdirectory(initial) \ No newline at end of file diff --git a/src/dusk/scene/initial/CMakeLists.txt b/src/dusk/scene/initial/CMakeLists.txt new file mode 100644 index 00000000..81fdf7d5 --- /dev/null +++ b/src/dusk/scene/initial/CMakeLists.txt @@ -0,0 +1,10 @@ +# Copyright (c) 2026 Dominic Masters +# +# This software is released under the MIT License. +# https://opensource.org/licenses/MIT + +# Sources +target_sources(${DUSK_LIBRARY_TARGET_NAME} + PUBLIC + initialscene.c +) \ No newline at end of file diff --git a/src/dusk/scene/initial/initialscene.c b/src/dusk/scene/initial/initialscene.c new file mode 100644 index 00000000..2d649bd7 --- /dev/null +++ b/src/dusk/scene/initial/initialscene.c @@ -0,0 +1,8 @@ +/** + * Copyright (c) 2026 Dominic Masters + * + * This software is released under the MIT License. + * https://opensource.org/licenses/MIT + */ + +#include "initialscene.h" \ No newline at end of file diff --git a/src/dusk/scene/initial/initialscene.h b/src/dusk/scene/initial/initialscene.h new file mode 100644 index 00000000..20902e35 --- /dev/null +++ b/src/dusk/scene/initial/initialscene.h @@ -0,0 +1,21 @@ +/** + * Copyright (c) 2026 Dominic Masters + * + * This software is released under the MIT License. + * https://opensource.org/licenses/MIT + */ + +#pragma once +#include "scene/scene.h" + +void initialSceneInit(void); +errorret_t initialSceneUpdate(void); +errorret_t initialSceneDraw(void); +void initialSceneDispose(void); + +static const scene_t INITIAL_SCENE = { + .init = initialSceneInit, + .update = initialSceneUpdate, + .draw = initialSceneDraw, + .dispose = initialSceneDispose +}; \ No newline at end of file diff --git a/src/dusk/scene/scene.c b/src/dusk/scene/scene.c index 7e1458d0..3224c4b0 100644 --- a/src/dusk/scene/scene.c +++ b/src/dusk/scene/scene.c @@ -18,10 +18,15 @@ #include "util/string.h" #include "ui/ui.h" -scene_t SCENE; +scene_t SCENE_CURRENT; +scene_t SCENE_NEXT; +bool_t SCENE_NEXT_SET; errorret_t sceneInit(void) { - memoryZero(&SCENE, sizeof(scene_t)); + memoryZero(&SCENE_CURRENT, sizeof(scene_t)); + memoryZero(&SCENE_NEXT, sizeof(scene_t)); + SCENE_NEXT_SET = false; + errorOk(); } @@ -32,6 +37,15 @@ errorret_t sceneUpdate(void) { } #endif + if(SCENE_NEXT_SET) { + if(SCENE_CURRENT.dispose) SCENE_CURRENT.dispose(); + SCENE_CURRENT = SCENE_NEXT; + SCENE_NEXT_SET = false; + if(SCENE_CURRENT.init) SCENE_CURRENT.init(); + } + + if(SCENE_CURRENT.update != NULL) errorChain(SCENE_CURRENT.update()); + errorOk(); } @@ -158,13 +172,10 @@ errorret_t sceneRender(void) { errorOk(); } -// void sceneSet(const char_t *scene) { -// stringCopy( -// SCENE.sceneNext, -// scene == NULL ? "" : scene, -// ASSET_FILE_NAME_MAX -// ); -// } +void sceneSet(const scene_t scene) { + SCENE_NEXT = scene; + SCENE_NEXT_SET = true; +} errorret_t sceneDispose(void) { errorOk(); diff --git a/src/dusk/scene/scene.h b/src/dusk/scene/scene.h index b3e9caf8..f4118d02 100644 --- a/src/dusk/scene/scene.h +++ b/src/dusk/scene/scene.h @@ -11,11 +11,14 @@ #define SCENE_EVENT_UPDATE_MAX 16 typedef struct { - void *nothing; + void (*init)(void); + errorret_t (*update)(void); + void (*dispose)(void); } scene_t; -extern scene_t SCENE; - +extern scene_t SCENE_CURRENT; +extern scene_t SCENE_NEXT; +extern bool_t SCENE_NEXT_SET; /** * Initializes the scene manager. @@ -43,7 +46,7 @@ errorret_t sceneRender(void); * * @param scene Which scene to set. */ -// void sceneSet(const char_t *scene); +void sceneSet(const scene_t scene); /** * Disposes of the current scene.