Compare commits

...

12 Commits

Author SHA1 Message Date
NishiOwO
85cc050bbb
add pack 2025-04-21 11:22:14 +09:00
NishiOwO
8a35bfbf18
add destroy method for gui 2025-04-21 11:09:51 +09:00
NishiOwO
cecf28c5d8 do multiprocessor build 2025-04-21 10:48:56 +09:00
NishiOwO
900a9dfdbe
fix msvc error 2025-04-21 10:41:31 +09:00
NishiOwO
d10dfae688
update ignore list 2025-04-21 10:38:23 +09:00
NishiOwO
3a5cdf8bf0
update clean.sh 2025-04-21 10:29:22 +09:00
NishiOwO
5c9686b702
fix files 2025-04-21 10:27:11 +09:00
NishiOwO
0255759a3a
sort dir 2025-04-21 10:20:29 +09:00
NishiOwO
52e0f0d89f
move engineinfo 2025-04-21 10:06:54 +09:00
NishiOwO
c8dda2f4cf
add music.ini 2025-04-21 09:54:06 +09:00
NishiOwO
7d7fac1ca1
use plain text instead 2025-04-21 09:49:51 +09:00
NishiOwO
2c15b8bdb2
add music 2025-04-21 09:45:00 +09:00
62 changed files with 474 additions and 241 deletions

1
.gitignore vendored
View File

@ -16,4 +16,5 @@ Makefile
/build
/engine/obj
/engine/lib
/engine/bin
/engine/doc

View File

@ -7,8 +7,7 @@ EXTRACT_ALL = NO
RECURSIVE = YES
FILE_PATTERNS = *.c *.h
INPUT = . include graphic README.md
EXCLUDE_PATTERNS = external
INPUT = src include graphic README.md
SOURCE_BROWSER = YES
HTML_DYNAMIC_MENUS = YES
@ -16,7 +15,7 @@ GENERATE_TREEVIEW = YES
FULL_SIDEBAR = NO
DISABLE_INDEX = NO
HAVE_DOT = NO
PROJECT_LOGO = "goldfish.png"
PROJECT_LOGO = "images/goldfish.png"
PROJECT_BRIEF = "Quite simple and lightweight game engine"
GENERATE_MAN = NO
USE_MDFILE_AS_MAINPAGE = "README.md"

View File

@ -1,5 +1,3 @@
#include <windows.h>
VS_VERSION_INFO VERSIONINFO
FILEVERSION 0,0,0,0
BEGIN
@ -8,8 +6,8 @@ BEGIN
BLOCK "040904E4"
BEGIN
VALUE "CompanyName", "GoldFish contributors\0"
VALUE "FileDescription", "GoldFish Engine\0"
VALUE "LegalCopyright", "Public domain, original by GoldFish contributors\0"
VALUE "FileDescription", FILE_DESCRIPTION
VALUE "LegalCopyright", "3-clause BSD\0"
VALUE "FileVersion", "0.0.0.0\0"
VALUE "ProductName", "GoldFish Engine\0"
END

View File

@ -1260,7 +1260,6 @@ void jar_mod_fillbuffer(jar_mod_context_t* modctx, gf_int16_t* outbuffer, unsign
modctx->last_l_sample = ll;
modctx->last_r_sample = lr;
skip:;
modctx->samplenb = modctx->samplenb + nbsample;
} else {
for(i = 0; i < nbsample; i++) {

View File

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 48 KiB

View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View File

@ -17,6 +17,7 @@
#include <gf_type/draw.h>
/* Standard */
#include <stddef.h>
/**
* @~english
@ -27,6 +28,17 @@
*/
GF_EXPORT gf_font_glyph_t* gf_font_get(gf_font_t* font, int code);
/**
* @~english
* @brief Load font
* @param draw Drawing interface
* @param path Path
* @param data Data
* @param size Data size
* @return Font
*/
GF_EXPORT gf_font_t* gf_font_create_raw(gf_draw_t* draw, const char* path, const void* data, size_t size);
/**
* @~english
* @brief Load font
@ -36,4 +48,11 @@ GF_EXPORT gf_font_glyph_t* gf_font_get(gf_font_t* font, int code);
*/
GF_EXPORT gf_font_t* gf_font_create(gf_draw_t* draw, const char* path);
/**
* @~english
* @brief Destroy font
* @param font Font
*/
GF_EXPORT void gf_font_destroy(gf_font_t* font);
#endif

View File

@ -43,10 +43,24 @@
* @param engine Engine instance
* @param draw Drawing interface
* @return GUI
* @note You should not have to call this - simply use gf_draw_t::gui
*/
GF_EXPORT gf_gui_t* gf_gui_create(gf_engine_t* engine, gf_draw_t* draw);
/**
* @~english
* @brief Destroy GUI
* @param gui GUI
*/
GF_EXPORT void gf_gui_destroy(gf_gui_t* gui);
/**
* @~english
* @brief Destroy GUI component by ID
* @param gui GUI
* @param id Component ID
*/
GF_EXPORT void gf_gui_destroy_id(gf_gui_t* gui, gf_gui_id_t id);
/**
* @~english
* @brief Create button component

View File

@ -22,6 +22,26 @@ typedef struct gf_font_t gf_font_t;
/* Standard */
/**
* @struct gf_font_store_t
* @~english
* @brief Internal struct used for parsing
*
* @var gf_font_store_t::glyph_index
* @brief Current glyph index
*
* @var gf_font_store_t::glyph_index
* @brief Current line index of glyph
*
* @var gf_font_store_t::buffer
* @brief Glyph buffer
*/
GF_DECLARE_TYPE(font_store, {
int glyph_index;
int line_index;
unsigned char* buffer;
});
/**
* @struct gf_font_bbox_t
* @~english

View File

@ -253,155 +253,8 @@ function gf_msvc_filters()
filter({})
end
project("GoldFish")
filter("options:engine=static")
kind("StaticLib")
defines({
"ODE_LIB",
"GF_LIB"
})
filter("options:engine=dynamic")
kind("SharedLib")
defines({
"ODE_DLL",
"GF_DLL"
})
filter("configurations:Debug")
defines({
"DEBUG",
"_DEBUG"
})
symbols("On")
filter("configurations:Release")
defines({
"NDEBUG",
"dNODEBUG"
})
optimize("On")
gf_msvc_filters()
targetdir("lib/%{cfg.buildcfg}/%{cfg.platform}")
targetname("goldfish")
includedirs({
"include",
"external/lua",
"external/zlib",
"external/miniaudio",
"external/stb",
"external/jar",
})
files({
"include/**.h",
"*.c",
"external/zlib/*.h",
"external/zlib/*.c",
"external/lua/l*.h",
"external/lua/l*.c",
})
files({
"audio/*.c"
})
filter({
"system:windows",
"options:engine=dynamic"
})
files({
"engine.rc"
})
filter({})
removefiles({
"external/lua/ltests.c",
"external/lua/ltests.h"
})
removefiles({
"external/lua/lua.c"
})
filter("system:windows")
files({
"thread/win32/gf_thread.c"
})
filter("system:not windows")
files({
"thread/posix/gf_thread.c"
})
filter({})
-- Begin ODE
includedirs({
"external/ode/include",
"external/ode/ode/src",
"external/ode/ode/src/joints",
"external/ode/OPCODE",
"external/ode/GIMPACT/include",
"external/ode/libccd/src/custom",
"external/ode/libccd/src"
})
files({
"external/ode/include/ode/*.h",
"external/ode/ode/src/joints/*.h",
"external/ode/ode/src/joints/*.cpp",
"external/ode/ode/src/*.h",
"external/ode/ode/src/*.c",
"external/ode/ode/src/*.cpp"
})
removefiles({
"external/ode/ode/src/collision_trimesh_trimesh_old.cpp",
"external/ode/ode/src/collision_trimesh_opcode.cpp",
"external/ode/ode/src/collision_trimesh_disabled.cpp"
})
includedirs({
"external/ode/ou/include"
})
files({
"external/ode/ou/include/**.h",
"external/ode/ou/src/**.h",
"external/ode/ou/src/**.cpp"
})
defines({
"_OU_NAMESPACE=odeou",
"_OU_FEATURE_SET=_OU_FEATURE_SET_TLS"
})
files({
"external/ode/GIMPACT/**.h",
"external/ode/GIMPACT/**.cpp"
})
files({
"external/ode/libccd/src/custom/ccdcustom/*.h",
"external/ode/libccd/src/ccd/*.h",
"external/ode/libccd/src/*.c"
})
defines({
"dLIBCCD_ENABLED",
"dLIBCCD_INTERNAL",
"dLIBCCD_BOX_CYL",
"dLIBCCD_CYL_CYL",
"dLIBCCD_CAP_CYL",
"dLIBCCD_CONVEX_BOX",
"dLIBCCD_CONVEX_CAP",
"dLIBCCD_CONVEX_CYL",
"dLIBCCD_CONVEX_SPHERE",
"dLIBCCD_CONVEX_CONVEX"
})
-- End ODE
gf_default_stuffs()
gf_link_stuffs("options:engine=dynamic")
for k,v in pairs(gf_backends) do
for k2,v2 in pairs(v["backends"]) do
filter({
"options:backend=" .. k,
"options:" .. k .. "=" .. k2
})
files({
"graphic/" .. k .. "/*.c",
"graphic/" .. k .. "/" .. k2 .. "/*.c"
})
end
end
include("util")
include("src")
if _ACTION and _ACTION ~= "clean" then
local text = ""

5
engine/src/engine.rc Normal file
View File

@ -0,0 +1,5 @@
#include <windows.h>
#define FILE_DESCRIPTION "GoldFish Engine"
#include "../common.rc"

View File

@ -27,7 +27,7 @@ void gf_audio_callback(ma_device* dev, void* output, const void* input, ma_uint3
float* tmp = malloc(sizeof(*tmp) * frame * 2);
int unlocked = 0;
for(i = 0; i < frame; i++) {
for(i = 0; i < (gf_audio_id_t)frame; i++) {
tmp[2 * i + 0] = 0;
tmp[2 * i + 1] = 0;
}
@ -54,7 +54,7 @@ void gf_audio_callback(ma_device* dev, void* output, const void* input, ma_uint3
int gotframe;
float* r = malloc(sizeof(*r) * frame * 2);
jar_xm_generate_samples(audio->decoder[i].xm, r, frame);
gotframe = audio->decoder[i].samples > frame ? frame : audio->decoder[i].samples;
gotframe = audio->decoder[i].samples > (gf_audio_id_t)frame ? frame : audio->decoder[i].samples;
for(j = 0; j < gotframe; j++) {
tmp[2 * j + 0] += (double)r[2 * j + 0];
tmp[2 * j + 1] += (double)r[2 * j + 1];
@ -71,7 +71,7 @@ void gf_audio_callback(ma_device* dev, void* output, const void* input, ma_uint3
int gotframe;
ma_int16* r = malloc(sizeof(*r) * frame * 2);
jar_mod_fillbuffer(audio->decoder[i].mod, r, frame, NULL);
gotframe = audio->decoder[i].samples > frame ? frame : audio->decoder[i].samples;
gotframe = audio->decoder[i].samples > (gf_audio_id_t)frame ? frame : audio->decoder[i].samples;
for(j = 0; j < gotframe; j++) {
tmp[2 * j + 0] += (double)r[2 * j + 0] / 32768.0;
tmp[2 * j + 1] += (double)r[2 * j + 1] / 32768.0;
@ -87,7 +87,7 @@ void gf_audio_callback(ma_device* dev, void* output, const void* input, ma_uint3
}
if(!unlocked) ma_mutex_unlock(audio->mutex);
for(i = 0; i < frame; i++) {
for(i = 0; i < (gf_audio_id_t)frame; i++) {
out[2 * i + 0] = tmp[2 * i + 0] * 32768;
out[2 * i + 1] = tmp[2 * i + 1] * 32768;
}
@ -106,7 +106,7 @@ gf_audio_id_t gf_audio_load(gf_audio_t* audio, const void* data, size_t size) {
int j;
int mod_sig_cond = 0;
for(j = 0; j < sizeof(gf_audio_mod_sig) / sizeof(gf_audio_mod_sig[0]); j++) {
mod_sig_cond = mod_sig_cond || (memcmp(data + 1080, gf_audio_mod_sig[j], 4) == 0);
mod_sig_cond = mod_sig_cond || (memcmp((char*)data + 1080, gf_audio_mod_sig[j], 4) == 0);
}
mod_cond = mod_cond && mod_sig_cond;
}

View File

@ -128,6 +128,9 @@ int gf_draw_step(gf_draw_t* draw) {
}
void gf_draw_destroy(gf_draw_t* draw) {
if(draw->font != NULL) {
gf_font_destroy(draw->font);
}
if(draw->driver != NULL) gf_draw_driver_destroy(draw->driver);
if(draw->platform != NULL) gf_draw_platform_destroy(draw->platform);
gf_log_function(draw->engine, "Destroyed drawing interface", "");

View File

@ -34,12 +34,6 @@ gf_font_glyph_t* gf_font_get(gf_font_t* font, int code) {
#define gf_stat stat
#endif
GF_DECLARE_TYPE(font_store, {
int glyph_index;
int line_index;
unsigned char* buffer;
});
/**
* This is a private method to parse BDF line
*/
@ -138,27 +132,19 @@ void gf_font_parse_line(gf_draw_t* draw, const char* path, gf_font_store_t* stor
}
}
gf_font_t* gf_font_create(gf_draw_t* draw, const char* path) {
gf_font_t* gf_font_create_raw(gf_draw_t* draw, const char* path, const void* data, size_t size) {
gf_font_t* font = malloc(sizeof(*font));
struct gf_stat s;
char* buf;
FILE* f;
int i = 0;
int incr = 0;
gf_font_store_t store;
store.line_index = -1;
store.glyph_index = 0;
memset(font, 0, sizeof(*font));
if(gf_stat(path, &s) != 0) {
free(font);
return NULL;
}
gf_log_function(NULL, "%s: %lu bytes", path, (unsigned long)s.st_size);
buf = malloc(s.st_size + 1);
buf[s.st_size] = 0;
f = fopen(path, "r");
fread(buf, s.st_size, 1, f);
fclose(f);
buf = malloc(size + 1);
buf[size] = 0;
memcpy(buf, data, size);
for(i = 0;; i++) {
if(buf[i] == 0 || buf[i] == '\n') {
@ -176,3 +162,34 @@ gf_font_t* gf_font_create(gf_draw_t* draw, const char* path) {
free(buf);
return font;
}
gf_font_t* gf_font_create(gf_draw_t* draw, const char* path) {
FILE* f;
struct gf_stat s;
char* buf;
gf_font_t* font;
if(gf_stat(path, &s) != 0) {
return NULL;
}
gf_log_function(NULL, "%s: %lu bytes", path, (unsigned long)s.st_size);
buf = malloc(s.st_size + 1);
buf[s.st_size] = 0;
f = fopen(path, "r");
fread(buf, s.st_size, 1, f);
fclose(f);
font = gf_font_create_raw(draw, path, buf, s.st_size);
free(buf);
return font;
}
void gf_font_destroy(gf_font_t* font) {
int i;
for(i = 0; i < font->count; i++) {
gf_texture_destroy(font->glyph[i]->texture);
}
free(font->glyph);
free(font);
}

View File

@ -40,6 +40,26 @@ gf_gui_t* gf_gui_create(gf_engine_t* engine, gf_draw_t* draw) {
return gui;
}
void gf_gui_destroy(gf_gui_t* gui) {
gf_gui_id_t i;
for(i = 0; i < GF_GUI_MAX_COMPONENTS; i++) {
gf_gui_destroy_id(gui, i);
}
gf_log_function(gui->engine, "Destroyed GUI", "");
free(gui);
}
void gf_gui_destroy_id(gf_gui_t* gui, gf_gui_id_t id) {
gf_gui_component_t* c = &gui->area[id];
switch(c->type) {
case GF_GUI_BUTTON: {
if(c->u.button.text != NULL) free(c->u.button.text);
c->u.button.text = NULL;
}
}
c->type = GF_GUI_UNUSED;
}
/* note... left top should be the lightest in the border */
void gf_gui_draw_box(gf_gui_t* gui, int mul, double x, double y, double w, double h) {

150
engine/src/premake5.lua Normal file
View File

@ -0,0 +1,150 @@
project("GoldFish")
filter("options:engine=static")
kind("StaticLib")
defines({
"ODE_LIB",
"GF_LIB"
})
filter("options:engine=dynamic")
kind("SharedLib")
defines({
"ODE_DLL",
"GF_DLL"
})
filter("configurations:Debug")
defines({
"DEBUG",
"_DEBUG"
})
symbols("On")
filter("configurations:Release")
defines({
"NDEBUG",
"dNODEBUG"
})
optimize("On")
gf_msvc_filters()
targetdir("../lib/%{cfg.buildcfg}/%{cfg.platform}")
objdir("../obj")
targetname("goldfish")
includedirs({
"../include",
"../external/lua",
"../external/zlib",
"../external/miniaudio",
"../external/stb",
"../external/jar",
})
files({
"../include/**.h",
"*.c",
"../external/zlib/*.h",
"../external/zlib/*.c",
"../external/lua/l*.h",
"../external/lua/l*.c",
})
files({
"audio/*.c"
})
filter({
"system:windows",
"options:engine=dynamic"
})
files({
"engine.rc"
})
filter({})
removefiles({
"../external/lua/ltests.c",
"../external/lua/ltests.h"
})
removefiles({
"../external/lua/lua.c"
})
filter("system:windows")
files({
"thread/win32/gf_thread.c"
})
filter("system:not windows")
files({
"thread/posix/gf_thread.c"
})
filter({})
-- Begin ODE
includedirs({
"../external/ode/include",
"../external/ode/ode/src",
"../external/ode/ode/src/joints",
"../external/ode/OPCODE",
"../external/ode/GIMPACT/include",
"../external/ode/libccd/src/custom",
"../external/ode/libccd/src"
})
files({
"../external/ode/include/ode/*.h",
"../external/ode/ode/src/joints/*.h",
"../external/ode/ode/src/joints/*.cpp",
"../external/ode/ode/src/*.h",
"../external/ode/ode/src/*.c",
"../external/ode/ode/src/*.cpp"
})
removefiles({
"../external/ode/ode/src/collision_trimesh_trimesh_old.cpp",
"../external/ode/ode/src/collision_trimesh_opcode.cpp",
"../external/ode/ode/src/collision_trimesh_disabled.cpp"
})
includedirs({
"../external/ode/ou/include"
})
files({
"../external/ode/ou/include/**.h",
"../external/ode/ou/src/**.h",
"../external/ode/ou/src/**.cpp"
})
defines({
"_OU_NAMESPACE=odeou",
"_OU_FEATURE_SET=_OU_FEATURE_SET_TLS"
})
files({
"../external/ode/GIMPACT/**.h",
"../external/ode/GIMPACT/**.cpp"
})
files({
"../external/ode/libccd/src/custom/ccdcustom/*.h",
"../external/ode/libccd/src/ccd/*.h",
"../external/ode/libccd/src/*.c"
})
defines({
"dLIBCCD_ENABLED",
"dLIBCCD_INTERNAL",
"dLIBCCD_BOX_CYL",
"dLIBCCD_CYL_CYL",
"dLIBCCD_CAP_CYL",
"dLIBCCD_CONVEX_BOX",
"dLIBCCD_CONVEX_CAP",
"dLIBCCD_CONVEX_CYL",
"dLIBCCD_CONVEX_SPHERE",
"dLIBCCD_CONVEX_CONVEX"
})
-- End ODE
gf_default_stuffs()
gf_link_stuffs("options:engine=dynamic")
for k,v in pairs(gf_backends) do
for k2,v2 in pairs(v["backends"]) do
filter({
"options:backend=" .. k,
"options:" .. k .. "=" .. k2
})
files({
"graphic/" .. k .. "/*.c",
"graphic/" .. k .. "/" .. k2 .. "/*.c"
})
end
end

View File

@ -0,0 +1,8 @@
#include <windows.h>
#define FILE_DESCRIPTION "GoldFish Engine Info"
GAME ICON "../images/goldfish.ico"
GOLDFISH_BMP BITMAP "../images/goldfish.bmp"
#include "../../common.rc"

8
engine/util/pack/pack.c Normal file
View File

@ -0,0 +1,8 @@
/* Engine */
/* External library */
/* Standard */
#include <stdio.h>
int main(int argc, char** argv) { return 0; }

7
engine/util/pack/pack.rc Normal file
View File

@ -0,0 +1,7 @@
#include <windows.h>
#define FILE_DESCRIPTION "GoldFish Engine Resource Packer"
GAME ICON "../images/goldfish.ico"
#include "../../common.rc"

75
engine/util/premake5.lua Normal file
View File

@ -0,0 +1,75 @@
project("Pack")
kind("ConsoleApp")
filter({})
language("C")
targetdir("../bin/%{cfg.buildcfg}/%{cfg.platform}")
objdir("../obj")
targetname("pack")
files({
"pack/*.c"
})
-- Call this if you are gonna use my engine...
gf_link_stuffs("options:engine=static")
filter("system:windows")
files({
"pack/*.rc"
})
filter("configurations:Debug")
defines({
"DEBUG"
})
symbols("On")
filter("configurations:Release")
defines({
"NDEBUG"
})
optimize("On")
gf_msvc_filters()
project("EngineInfo")
filter("system:windows")
kind("WindowedApp")
filter("system:not windows")
kind("ConsoleApp")
filter({})
language("C")
targetdir("../bin/%{cfg.buildcfg}/%{cfg.platform}")
objdir("../obj")
targetname("engineinfo")
includedirs({
"../include"
})
files({
"engineinfo/*.c"
})
removefiles({
"engineinfo/main_windows.c"
})
filter("system:windows")
removefiles({
"engineinfo/main_console.c"
})
files({
"engineinfo/main_windows.c"
})
filter({})
links({
"GoldFish"
})
-- Call this if you are gonna use my engine...
gf_link_stuffs("options:engine=static")
filter("system:windows")
files({
"engineinfo/*.rc"
})
filter("configurations:Debug")
defines({
"DEBUG"
})
symbols("On")
filter("configurations:Release")
defines({
"NDEBUG"
})
optimize("On")
gf_msvc_filters()

47
music/README.txt Normal file
View File

@ -0,0 +1,47 @@
Music for NishBox
===============================================================================
This folder contains music used for NishBox.
Since these musics are not composed by me, all rights remain with the original
composer. If you are the author and would like these removed or credited
differently, please contact me.
dbreed.xm
-------------------------------------------------------------------------------
Title : Dying breed
Composer: Rasputin
deep_blue.xm
-------------------------------------------------------------------------------
Title : deep blue
Composer: mtk
deep_water_theme.xm
-------------------------------------------------------------------------------
Title : deep water theme
Composer: Lone Wolf
grace.xm
-------------------------------------------------------------------------------
Title : Grace
Composer: aNTiSoCiaL
mikke-shine.xm
-------------------------------------------------------------------------------
Title : Shine Forever
Composer: Mikke
y0da_ctf.xm
-------------------------------------------------------------------------------
Title : Chilling the fries
Composer: y0da
y0da_cutoff.xm
-------------------------------------------------------------------------------
Title : Cutoff.
Composer: y0da
y0da_mpa.xm
-------------------------------------------------------------------------------
Title : Mushroom path
Composer: y0da

BIN
music/dbreed.xm Normal file

Binary file not shown.

BIN
music/deep_blue.xm Normal file

Binary file not shown.

BIN
music/deep_water_theme.xm Normal file

Binary file not shown.

BIN
music/grace.xm Normal file

Binary file not shown.

BIN
music/mikke-shine.xm Normal file

Binary file not shown.

31
music/music.ini Normal file
View File

@ -0,0 +1,31 @@
[dbreed.xm]
title=Dying breed
composer=Rasputin
[deep_blue.xm]
title=deep blue
composer=mtk
[deep_water_theme.xm]
title=deep water theme
composer=Lone Wolf
[grace.xm]
title=Grace
composer=aNTiSoCiaL
[mikke-shine.xm]
title=Shine Forever
composer=Mikke
[y0da_ctf.xm]
title=Chilling the fries
composer=y0da
[y0da_cutoff.xm]
title=Cutoff.
composer=y0da
[y0da_mpa.xm]
title=Mushroom path
composer=y0da

BIN
music/y0da_ctf.xm Normal file

Binary file not shown.

BIN
music/y0da_cutoff.xm Normal file

Binary file not shown.

BIN
music/y0da_mpa.xm Normal file

Binary file not shown.

View File

@ -1,3 +1,5 @@
flags("MultiProcessorCompile")
workspace("NishBox")
configurations({
"Debug",
@ -32,6 +34,9 @@ newaction({
os.rmdir("engine/bin")
os.rmdir("engine/obj")
os.rmdir("engine/lib")
os.rmdir("engine/util/bin")
os.rmdir("engine/util/obj")
os.rmdir("engine/util/lib")
end
})
@ -78,60 +83,11 @@ end
include "engine"
project("EngineInfo")
filter("system:windows")
kind("WindowedApp")
filter("system:not windows")
kind("ConsoleApp")
filter({})
language("C")
targetdir("bin/%{cfg.buildcfg}/%{cfg.platform}")
targetname("nishbox_engineinfo")
includedirs({
"engine/include"
})
files({
"src/engineinfo/*.c"
})
removefiles({
"src/engineinfo/main_windows.c"
})
filter("system:windows")
removefiles({
"src/engineinfo/main_console.c"
})
files({
"src/engineinfo/main_windows.c"
})
filter({})
links({
"GoldFish"
})
-- Call this if you are gonna use my engine...
gf_link_stuffs("options:engine=static")
filter("system:windows")
defines({
"FD_ENGINEINFO"
})
files({
"src/*.rc"
})
filter("configurations:Debug")
defines({
"DEBUG"
})
symbols("On")
filter("configurations:Release")
defines({
"NDEBUG"
})
optimize("On")
msvc_filters()
project("NishBoxServer")
kind("ConsoleApp")
language("C")
targetdir("bin/%{cfg.buildcfg}/%{cfg.platform}")
objdir("obj/%{cfg.buildcfg}/%{cfg.platform}")
targetname("nishbox_server")
includedirs({
"engine/include"
@ -167,6 +123,7 @@ project("NishBox")
kind("ConsoleApp")
language("C")
targetdir("bin/%{cfg.buildcfg}/%{cfg.platform}")
objdir("obj/%{cfg.buildcfg}/%{cfg.platform}")
targetname("nishbox")
includedirs({
"engine/include"

View File

@ -6,16 +6,8 @@
#ifdef FD_SERVER
#define FILE_DESCRIPTION "NishBox Dedicated Server\0"
#endif
#ifdef FD_ENGINEINFO
#define FILE_DESCRIPTION "GoldFish Engine Info\0"
#endif
#ifdef FD_ENGINEINFO
GAME ICON "./internal/goldfish.ico"
#else
GAME ICON "./internal/icon.ico"
#endif
GOLDFISH_BMP BITMAP "./internal/goldfish.bmp"
VS_VERSION_INFO VERSIONINFO
FILEVERSION 0,0,0,0
@ -26,7 +18,7 @@ BEGIN
BEGIN
VALUE "CompanyName", "NishBox contributors\0"
VALUE "FileDescription", FILE_DESCRIPTION
VALUE "LegalCopyright", "Public domain, original by NishBox contributors\0"
VALUE "LegalCopyright", "3-clause BSD\0"
VALUE "FileVersion", "0.0.0.0\0"
VALUE "ProductName", "NishBox Component\0"
END

View File

@ -2,3 +2,13 @@
rm -rf obj lib bin *.make Makefile
cd engine
rm -rf obj lib bin *.make Makefile
cd src
rm -rf obj lib bin *.make Makefile
cd ..
cd util
rm -rf obj lib bin *.make Makefile
cd ..
cd ..