diff --git a/engine/CMakeLists.txt b/engine/CMakeLists.txt index 49f0aed..e8d2314 100644 --- a/engine/CMakeLists.txt +++ b/engine/CMakeLists.txt @@ -1,6 +1,7 @@ cmake_minimum_required(VERSION 3.20) set(CMAKE_CXX_FLAGS "-std=c++17 -Wno-error") -file(GLOB_RECURSE ENGINE_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp") + +file(GLOB_RECURSE ENGINE_SOURCES CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp") add_custom_command(OUTPUT "${CMAKE_BINARY_DIR}/force_rebuild" COMMAND rm -f "${CMAKE_SOURCE_DIR}/link/libenginend.so" COMMAND rm -rf "${CMAKE_SOURCE_DIR}/include/enginend" @@ -18,7 +19,7 @@ set_target_properties(enginend PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/link" ) -file(GLOB_RECURSE HEADER_FILES "${ENGINE_SRC_DIR}/*.h" "${ENGINE_SRC_DIR}/*.hpp") +file(GLOB_RECURSE HEADER_FILES CONFIGURE_DEPENDS "${ENGINE_SRC_DIR}/*.h" "${ENGINE_SRC_DIR}/*.hpp") foreach(HEADER ${HEADER_FILES}) file(RELATIVE_PATH REL_PATH "${ENGINE_SRC_DIR}" "${HEADER}") diff --git a/engine/src/scenes/node2drelative.h b/engine/src/scenes/node2drelative.h index 76c034c..52d8575 100644 --- a/engine/src/scenes/node2drelative.h +++ b/engine/src/scenes/node2drelative.h @@ -141,9 +141,11 @@ namespace enginend{ std::string content; text(){fs=20;} text(Texture2D* texture,Color txcol,Color color,double x,double y,double w,double h,Font f,float fsize,std::string txt): - tinted(texture,color,x,y,w,h), + //tinted(texture,color,x,y,w,h), font(f),fs(fsize),content(txt),txc(txcol) { + this->x=x;this->y=y;this->w=w;this->h=h; + this->texture=texture;this->c=color; result=content; size_t initp=0; while((initp=result.find("\n",initp))!=std::string::npos){ @@ -167,8 +169,12 @@ namespace enginend{ float sh=GetScreenHeight(); float ax=x*sw; float ay=y*sh; + float aw=w*sw; float ah=h*sh; + tiny::echo("og: %f %f %f %f", x,y,w,h); + tiny::echo("drawing text: %s", content.c_str()); + tiny::echo("transformed: %f %f %f %f", ax, ay, aw, ah); Vector2 minsize=MeasureTextEx(font,content.c_str(),fs,1); Vector2 charsize=MeasureTextEx(font," ",fs,1); float p=charsize.x>charsize.y?charsize.x/minsize.x:charsize.y/minsize.y; diff --git a/engine/src/scenes/nodes.h b/engine/src/scenes/nodes.h index a14600e..006d2c6 100644 --- a/engine/src/scenes/nodes.h +++ b/engine/src/scenes/nodes.h @@ -6,9 +6,9 @@ #include "../net.h" #include - namespace enginend { -namespace nodes { - struct node{ +namespace enginend { + namespace nodes { + struct node{ public: virtual void boot()=0; virtual void tick()=0; @@ -18,6 +18,7 @@ namespace nodes { } struct group : public virtual enginend::nodes::node { std::vector children; + group(std::vector& children) : children(std::move(children)) {} void boot(){for (node* n: children){n->boot();}} void tick(){for (node* n: children){n->tick();}} void draw(){for (node* n: children){n->draw();}} diff --git a/games/forespend/CMakeLists.txt b/games/forespend/CMakeLists.txt index c9d1c2c..736e34d 100644 --- a/games/forespend/CMakeLists.txt +++ b/games/forespend/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 3.20) set(CMAKE_CXX_FLAGS "-std=c++17 -Wno-error") -file(GLOB_RECURSE FORESPEND_SOURCES "src/*.cpp") +file(GLOB_RECURSE FORESPEND_SOURCES CONFIGURE_DEPENDS "src/*.cpp") add_executable(forespend ${FORESPEND_SOURCES}) set_target_properties(forespend PROPERTIES diff --git a/games/forespend/src/client/client.cpp b/games/forespend/src/client/client.cpp index a52102d..c323857 100644 --- a/games/forespend/src/client/client.cpp +++ b/games/forespend/src/client/client.cpp @@ -8,8 +8,9 @@ client::client() { void client::boot() { this->framerate=60; this->tickrate=20; - InitWindow(380,240,"forespend - 0.03h"); // SetConfigFlags(); + InitWindow(380,240,"forespend - 0.03h"); + initconfigmenu(); this->currentscene=new mainmenu(); this->currentscene->boot(); target=LoadRenderTexture(380,240); diff --git a/games/forespend/src/client/scenes/configmenu.cpp b/games/forespend/src/client/scenes/configmenu.cpp index 5219ec9..58e2e51 100644 --- a/games/forespend/src/client/scenes/configmenu.cpp +++ b/games/forespend/src/client/scenes/configmenu.cpp @@ -1,3 +1,31 @@ -// -// Created by komi on 12/25/25. -// \ No newline at end of file +#include "configmenu.h" + +#include +Font forefont; + +enginend::group mainpage= enginend::group( + { + new enginend::nodes::labeledbutton("graphics",nullptr,{255,127,0,255},{0,0,0,0},100,100,0,0,std::function([]() { + + }),forefont,32), + + } +); +enginend::group graphics= enginend::group( + { + + } +); +enginend::group sound= enginend::group( + { + + } +); +enginend::group controls= enginend::group( + { + + } +); +void initconfigmenu() { + forefont=LoadFont(AT("res/fonts/dos.fnt")); +} \ No newline at end of file diff --git a/games/forespend/src/client/scenes/configmenu.h b/games/forespend/src/client/scenes/configmenu.h index 69ce21c..ba600a0 100644 --- a/games/forespend/src/client/scenes/configmenu.h +++ b/games/forespend/src/client/scenes/configmenu.h @@ -1,6 +1,11 @@ #pragma once #include -#include +#include +extern Font forefont; +extern enginend::group maincfgpage; +extern enginend::group graphics; +extern enginend::group sound; +extern enginend::group controls; -std::vector config{}; +void initconfigmenu(); \ No newline at end of file diff --git a/games/forespend/src/client/scenes/mainmenu.h b/games/forespend/src/client/scenes/mainmenu.h index bc454ee..4f00022 100644 --- a/games/forespend/src/client/scenes/mainmenu.h +++ b/games/forespend/src/client/scenes/mainmenu.h @@ -1,6 +1,7 @@ #pragma once #include #include +#include "configmenu.h" #include class mainmenu :public virtual enginend::scene{ @@ -11,6 +12,7 @@ public: this->nodes=std::list{ new enginend::nodes::relative::animated(AT("res/images/sky.gif"),0,0,1,1,2), + new enginend::nodes::relative::text(nullptr,{255,127,0,255},{0,0,0,0},0.25,0.05,0.8,0.1,forefont,32,"FORESPEND"), }; enginend::scene::boot(); } diff --git a/games/forespend/src/main.cpp b/games/forespend/src/main.cpp index 7696e09..7d55051 100644 --- a/games/forespend/src/main.cpp +++ b/games/forespend/src/main.cpp @@ -7,14 +7,14 @@ PLATFORM platform=LINUX; std::string androidpackage="kn.kinfuyuki.forespend"; inline const char* COMMONCONFIG(){return "common.tdf";} -tiny::ErrorLevel tiny::level{6}; +tiny::ErrorLevel tiny::level{4}; int main(int argc, char** argv) { enginend::program* game; tiny::startup("forespend","0.03g-rewrite"); bool isserver = false; if (argc>1) { for (int i=1;i