diff --git a/gmtk2025/data/cfg/startup.cfg b/gmtk2025/data/cfg/startup.cfg deleted file mode 100644 index 5ab20ca..0000000 --- a/gmtk2025/data/cfg/startup.cfg +++ /dev/null @@ -1,7 +0,0 @@ -echo "GMTK 2025" -echo "Made with MPFW" -echo "" -show_cursor -disable_game -ui_show -ui_create_window "data/menus/mainmenu.wnd" \ No newline at end of file diff --git a/gmtk2025/data/fonts/RobotoMono/LICENSE.txt b/gmtk2025/data/fonts/RobotoMono/LICENSE.txt deleted file mode 100644 index 38d9750..0000000 --- a/gmtk2025/data/fonts/RobotoMono/LICENSE.txt +++ /dev/null @@ -1,91 +0,0 @@ -This Font Software is licensed under the SIL Open Font License, Version 1.1. -This license is copied below, and is also available with a FAQ at: -https://openfontlicense.org - - ------------------------------------------------------------ -SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 ------------------------------------------------------------ - -PREAMBLE -The goals of the Open Font License (OFL) are to stimulate worldwide -development of collaborative font projects, to support the font creation -efforts of academic and linguistic communities, and to provide a free and -open framework in which fonts may be shared and improved in partnership -with others. - -The OFL allows the licensed fonts to be used, studied, modified and -redistributed freely as long as they are not sold by themselves. The -fonts, including any derivative works, can be bundled, embedded, -redistributed and/or sold with any software provided that any reserved -names are not used by derivative works. The fonts and derivatives, -however, cannot be released under any other type of license. The -requirement for fonts to remain under this license does not apply -to any document created using the fonts or their derivatives. - -DEFINITIONS -"Font Software" refers to the set of files released by the Copyright -Holder(s) under this license and clearly marked as such. This may -include source files, build scripts and documentation. - -"Reserved Font Name" refers to any names specified as such after the -copyright statement(s). - -"Original Version" refers to the collection of Font Software components as -distributed by the Copyright Holder(s). - -"Modified Version" refers to any derivative made by adding to, deleting, -or substituting -- in part or in whole -- any of the components of the -Original Version, by changing formats or by porting the Font Software to a -new environment. - -"Author" refers to any designer, engineer, programmer, technical -writer or other person who contributed to the Font Software. - -PERMISSION & CONDITIONS -Permission is hereby granted, free of charge, to any person obtaining -a copy of the Font Software, to use, study, copy, merge, embed, modify, -redistribute, and sell modified and unmodified copies of the Font -Software, subject to the following conditions: - -1) Neither the Font Software nor any of its individual components, -in Original or Modified Versions, may be sold by itself. - -2) Original or Modified Versions of the Font Software may be bundled, -redistributed and/or sold with any software, provided that each copy -contains the above copyright notice and this license. These can be -included either as stand-alone text files, human-readable headers or -in the appropriate machine-readable metadata fields within text or -binary files as long as those fields can be easily viewed by the user. - -3) No Modified Version of the Font Software may use the Reserved Font -Name(s) unless explicit written permission is granted by the corresponding -Copyright Holder. This restriction only applies to the primary font name as -presented to the users. - -4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font -Software shall not be used to promote, endorse or advertise any -Modified Version, except to acknowledge the contribution(s) of the -Copyright Holder(s) and the Author(s) or with their explicit written -permission. - -5) The Font Software, modified or unmodified, in part or in whole, -must be distributed entirely under this license, and must not be -distributed under any other license. The requirement for fonts to -remain under this license does not apply to any document created -using the Font Software. - -TERMINATION -This license becomes null and void if any of the above conditions are -not met. - -DISCLAIMER -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT -OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE -COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL -DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM -OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/gmtk2025/data/fonts/RobotoMono/RobotoMono-Bold.ttf b/gmtk2025/data/fonts/RobotoMono/RobotoMono-Bold.ttf deleted file mode 100644 index bef439f..0000000 Binary files a/gmtk2025/data/fonts/RobotoMono/RobotoMono-Bold.ttf and /dev/null differ diff --git a/gmtk2025/data/fonts/RobotoMono/RobotoMono-BoldItalic.ttf b/gmtk2025/data/fonts/RobotoMono/RobotoMono-BoldItalic.ttf deleted file mode 100644 index 642dd05..0000000 Binary files a/gmtk2025/data/fonts/RobotoMono/RobotoMono-BoldItalic.ttf and /dev/null differ diff --git a/gmtk2025/data/fonts/RobotoMono/RobotoMono-ExtraLight.ttf b/gmtk2025/data/fonts/RobotoMono/RobotoMono-ExtraLight.ttf deleted file mode 100644 index 8cc41ca..0000000 Binary files a/gmtk2025/data/fonts/RobotoMono/RobotoMono-ExtraLight.ttf and /dev/null differ diff --git a/gmtk2025/data/fonts/RobotoMono/RobotoMono-ExtraLightItalic.ttf b/gmtk2025/data/fonts/RobotoMono/RobotoMono-ExtraLightItalic.ttf deleted file mode 100644 index 47e4a4f..0000000 Binary files a/gmtk2025/data/fonts/RobotoMono/RobotoMono-ExtraLightItalic.ttf and /dev/null differ diff --git a/gmtk2025/data/fonts/RobotoMono/RobotoMono-Italic.ttf b/gmtk2025/data/fonts/RobotoMono/RobotoMono-Italic.ttf deleted file mode 100644 index 781eff8..0000000 Binary files a/gmtk2025/data/fonts/RobotoMono/RobotoMono-Italic.ttf and /dev/null differ diff --git a/gmtk2025/data/fonts/RobotoMono/RobotoMono-Light.ttf b/gmtk2025/data/fonts/RobotoMono/RobotoMono-Light.ttf deleted file mode 100644 index b6fb475..0000000 Binary files a/gmtk2025/data/fonts/RobotoMono/RobotoMono-Light.ttf and /dev/null differ diff --git a/gmtk2025/data/fonts/RobotoMono/RobotoMono-LightItalic.ttf b/gmtk2025/data/fonts/RobotoMono/RobotoMono-LightItalic.ttf deleted file mode 100644 index 48fec00..0000000 Binary files a/gmtk2025/data/fonts/RobotoMono/RobotoMono-LightItalic.ttf and /dev/null differ diff --git a/gmtk2025/data/fonts/RobotoMono/RobotoMono-Medium.ttf b/gmtk2025/data/fonts/RobotoMono/RobotoMono-Medium.ttf deleted file mode 100644 index 53fdd40..0000000 Binary files a/gmtk2025/data/fonts/RobotoMono/RobotoMono-Medium.ttf and /dev/null differ diff --git a/gmtk2025/data/fonts/RobotoMono/RobotoMono-MediumItalic.ttf b/gmtk2025/data/fonts/RobotoMono/RobotoMono-MediumItalic.ttf deleted file mode 100644 index 6916e76..0000000 Binary files a/gmtk2025/data/fonts/RobotoMono/RobotoMono-MediumItalic.ttf and /dev/null differ diff --git a/gmtk2025/data/fonts/RobotoMono/RobotoMono-Regular.ttf b/gmtk2025/data/fonts/RobotoMono/RobotoMono-Regular.ttf deleted file mode 100644 index 3806bfb..0000000 Binary files a/gmtk2025/data/fonts/RobotoMono/RobotoMono-Regular.ttf and /dev/null differ diff --git a/gmtk2025/data/fonts/RobotoMono/RobotoMono-SemiBold.ttf b/gmtk2025/data/fonts/RobotoMono/RobotoMono-SemiBold.ttf deleted file mode 100644 index b828c3a..0000000 Binary files a/gmtk2025/data/fonts/RobotoMono/RobotoMono-SemiBold.ttf and /dev/null differ diff --git a/gmtk2025/data/fonts/RobotoMono/RobotoMono-SemiBoldItalic.ttf b/gmtk2025/data/fonts/RobotoMono/RobotoMono-SemiBoldItalic.ttf deleted file mode 100644 index 06032b5..0000000 Binary files a/gmtk2025/data/fonts/RobotoMono/RobotoMono-SemiBoldItalic.ttf and /dev/null differ diff --git a/gmtk2025/data/fonts/RobotoMono/RobotoMono-Thin.ttf b/gmtk2025/data/fonts/RobotoMono/RobotoMono-Thin.ttf deleted file mode 100644 index 71f1a46..0000000 Binary files a/gmtk2025/data/fonts/RobotoMono/RobotoMono-Thin.ttf and /dev/null differ diff --git a/gmtk2025/data/fonts/RobotoMono/RobotoMono-ThinItalic.ttf b/gmtk2025/data/fonts/RobotoMono/RobotoMono-ThinItalic.ttf deleted file mode 100644 index a1b2e5a..0000000 Binary files a/gmtk2025/data/fonts/RobotoMono/RobotoMono-ThinItalic.ttf and /dev/null differ diff --git a/gmtk2025/data/menus/mainmenu.wnd b/gmtk2025/data/menus/mainmenu.wnd deleted file mode 100644 index 3eb6cfe..0000000 --- a/gmtk2025/data/menus/mainmenu.wnd +++ /dev/null @@ -1,22 +0,0 @@ - - - GMTK 2025 - - - - File - - New game - echo "this should be a new game" - - - - Quit - quit - - - - - - - \ No newline at end of file diff --git a/gmtk2025/data/palette.lmp b/gmtk2025/data/palette.lmp deleted file mode 100644 index 7eefda1..0000000 Binary files a/gmtk2025/data/palette.lmp and /dev/null differ diff --git a/gmtk2025/data/sys/cvardefs.cvars b/gmtk2025/data/sys/cvardefs.cvars deleted file mode 100644 index cce33e4..0000000 --- a/gmtk2025/data/sys/cvardefs.cvars +++ /dev/null @@ -1,3 +0,0 @@ -vid_3d_renderer true -vid_3d_grid false -vid_2d_background false \ No newline at end of file diff --git a/gmtk2025/imgui.ini b/gmtk2025/imgui.ini deleted file mode 100644 index fe28880..0000000 --- a/gmtk2025/imgui.ini +++ /dev/null @@ -1,8 +0,0 @@ -[Window][Debug##Default] -Pos=60,60 -Size=400,400 - -[Window][GMTK 2025] -Pos=57,64 -Size=262,178 - diff --git a/mpfw/MPFW_Atlasing.cpp b/mpfw/MPFW_Atlasing.cpp new file mode 100644 index 0000000..b31c671 --- /dev/null +++ b/mpfw/MPFW_Atlasing.cpp @@ -0,0 +1,33 @@ +#include "MPFW_Atlasing.h" + +int MPFW::Render::LoadTextureAtlasFromImages(std::vector images) +{ + int largestWidth = 0; + int atlasHeight = 0; + + for (int i = 0; i < images.size(); i++) { + if (images[i].width > largestWidth) largestWidth = images[i].width; + atlasHeight += images[i].height; + } + + + Image atlasImage = GenImageColor(largestWidth, atlasHeight, BLANK); + + int currentImageHeight = 0; + for (int i = 0; i < images.size(); i++) { + + ImageDraw(&atlasImage, images[i], { 0,0,(float)images[i].width, (float)images[i].height }, { 0,(float)currentImageHeight,(float)images[i].width, (float)images[i].height }, WHITE); + + currentImageHeight += images[i].height; + + } + + + // ExportImage(atlasImage, "testatlas.png"); + + return 0; + + + + +} diff --git a/mpfw/MPFW_Atlasing.h b/mpfw/MPFW_Atlasing.h new file mode 100644 index 0000000..ddaacaa --- /dev/null +++ b/mpfw/MPFW_Atlasing.h @@ -0,0 +1,10 @@ +#pragma once + +#include +#include + +namespace MPFW { + namespace Render { + int LoadTextureAtlasFromImages(std::vector images); + } +} \ No newline at end of file diff --git a/mpfw/MPFW_Physics.cpp b/mpfw/MPFW_Physics.cpp index 8cdb80f..d98e326 100644 --- a/mpfw/MPFW_Physics.cpp +++ b/mpfw/MPFW_Physics.cpp @@ -210,7 +210,7 @@ MPFW::Physics::CollisionMap MPFW::Physics::GenerateCollisionMap(std::vector guard(collSetMutex); retval.collisionSets[vCount].collisionFaces.push_back(pStructs[p]); } - std::print("v:{},p:{}\n", vCount, p); + // std::print("v:{},p:{}\n", vCount, p); } vCount++; diff --git a/mpfw/MPFW_Quake.cpp b/mpfw/MPFW_Quake.cpp index a2ef230..1e75773 100644 --- a/mpfw/MPFW_Quake.cpp +++ b/mpfw/MPFW_Quake.cpp @@ -7,6 +7,7 @@ #include #include #include +#include "MPFW_Atlasing.h" #include @@ -109,8 +110,6 @@ void MPFW::Quake::Maps::MapFile::LoadBSPMap(std::string path) // we're loading models first because that's // what the spec does <3 - ds = Debug::MODELS; - #ifdef MPFW_QUAKE_SLOW_LOADING data.models.resize(data.header.models.size / 64); @@ -160,8 +159,6 @@ void MPFW::Quake::Maps::MapFile::LoadBSPMap(std::string path) // parsing vertices - - ds = Debug::VERTICES; #ifdef MPFW_QUAKE_SLOW_LOADING verticesCDBG = 0; data.vertices.resize(data.header.vertices.size / 12); @@ -182,15 +179,12 @@ void MPFW::Quake::Maps::MapFile::LoadBSPMap(std::string path) } #else - std::string verticesStr = Utils::Strings::IterativeStringExcerpt(buffer, data.header.vertices.offset, data.header.vertices.size); data.vertices.resize(data.header.vertices.size / 12); std::memcpy(data.vertices.data(), verticesStr.data(), data.header.vertices.size); #endif + // parsing edges - - ds = Debug::EDGES; - #ifdef MPFW_QUAKE_SLOW_LOADING edgesCDBG = 0; data.edges.resize(data.header.edges.size / 4); @@ -240,7 +234,6 @@ void MPFW::Quake::Maps::MapFile::LoadBSPMap(std::string path) std::memcpy(data.texInfo.data(), texInfoStr.data(), data.header.texinfo.size); #endif - ds = Debug::LEDGES; #ifdef MPFW_QUAKE_SLOW_LOADING for (int i = 0; i < data.header.ledges.size / 2; i++) { int base = data.header.ledges.offset + (2 * i); @@ -261,10 +254,6 @@ void MPFW::Quake::Maps::MapFile::LoadBSPMap(std::string path) // parsing faces - - ds = Debug::FACES; - - #ifdef MPFW_QUAKE_SLOW_LOADING for (int i = 0; i < data.header.faces.size / 20; i++) { @@ -327,12 +316,12 @@ void MPFW::Quake::Maps::MapFile::LoadBSPMap(std::string path) texOffsets.push_back(Utils::Strings::StringIndexToInteger_4b_le(buffer, data.header.miptex.offset + 4 + 4 * i)); } - + for (int i = 0; i < cmh.numtex; i++) { unsigned int base = static_cast(texOffsets[i]) + (unsigned)data.header.miptex.offset; - // this shit is ¤ undocumented! ¤ - // fuck the unofficial quake specs + // this stuff is ¤ undocumented! ¤ + // screw the unofficial quake specs if (texOffsets[i] == -1) { // is a texoffset of 0xFFFFFFFF a reference to the fact that // it starts right after the mipheader? probably not, but it @@ -534,16 +523,6 @@ void MPFW::Quake::Maps::MapFile::LoadBSPMap(std::string path) Physics::CollisionMapGenParams cmgp; *collMap = Physics::GenerateCollisionMap(collPolygons, totalRlVec, cmgp, std::format("{}", std::hash{}(path))); - - - - - - ds = Debug::DONE; - - - - } Vector3 MPFW::Quake::Maps::qVec2RLVec(Vector3 q) { return { q.y / 2, q.z / 2, q.x / 2 }; diff --git a/mpfw/main.cpp b/mpfw/main.cpp index be39d49..c200f39 100644 --- a/mpfw/main.cpp +++ b/mpfw/main.cpp @@ -15,6 +15,7 @@ #include #include "MPFW_Physics.h" + #define DISTANCE_FROM_FLOOR 15 #define DISTANCE_FROM_WALL 5 @@ -156,7 +157,7 @@ void ___test___(T a, T b) { bool consoleOn = false; - +// #define SOLIPSE_TEST int main() { @@ -185,6 +186,9 @@ int main() { std::print("\nEnd of unit testing\n\n\n"); #endif + + + // if not already created... std::filesystem::create_directories("data/cache/collisiondata"); @@ -236,9 +240,9 @@ int main() { while (!WindowShouldClose()) { - if (framebuffer < 5 && !uiRenderer.showCursorOnLaunch) { + if (framebuffer < 5) { - DisableCursor(); + if(!uiRenderer.showCursorOnLaunch) DisableCursor(); framebuffer++; } @@ -262,7 +266,7 @@ int main() { ClearBackground(BLACK); if(IsCursorHidden() && !consoleOn){ - if(framebuffer > 5){ + if(framebuffer >= 5){ if (chr.cvars["math_3d_floor_collision_work"] == "true") { float potentialNewFloor = -FLT_MAX; for (int b = 0; b < collisionMap.collisionSets.size(); b++) { @@ -478,7 +482,7 @@ int main() { rlVertex3f(b.x, b.y, b.z); rlTexCoord2f(ct.x, ct.y); rlVertex3f(c.x, c.y, c.z); - rlVertex3f(c.x, c.y, c.z); // why does RLGL fuck up triangles? is there something i'm missing? + rlVertex3f(c.x, c.y, c.z); // why does RLGL screw up triangles? is there something i'm missing? rlEnd(); @@ -488,12 +492,6 @@ int main() { } - /*for (int i = 0; i < collisionMap.collisionSets.size(); i++) { - BoundingBox b; b.min = collisionMap.collisionSets[i].size.min; - b.max = collisionMap.collisionSets[i].size.max; - - DrawBoundingBox(b, RED); - }*/ EndMode3D(); } diff --git a/mpfw/mpfw.vcxproj b/mpfw/mpfw.vcxproj index d151f08..a79d525 100644 --- a/mpfw/mpfw.vcxproj +++ b/mpfw/mpfw.vcxproj @@ -147,6 +147,7 @@ + @@ -157,6 +158,7 @@ + diff --git a/mpfw/mpfw.vcxproj.filters b/mpfw/mpfw.vcxproj.filters index 532c02a..f3a699b 100644 --- a/mpfw/mpfw.vcxproj.filters +++ b/mpfw/mpfw.vcxproj.filters @@ -69,6 +69,9 @@ Source Files + + Source Files + @@ -101,5 +104,8 @@ Header Files + + Header Files + \ No newline at end of file diff --git a/mpfw/mpfw.vcxproj.user b/mpfw/mpfw.vcxproj.user index b5b7d95..d011c1f 100644 --- a/mpfw/mpfw.vcxproj.user +++ b/mpfw/mpfw.vcxproj.user @@ -1,11 +1,11 @@  - $(SolutionDir)/techdemo + $(SolutionDir)/gameenv WindowsLocalDebugger - $(SolutionDir)/techdemo + $(SolutionDir)/gameenv WindowsLocalDebugger \ No newline at end of file