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
-
-
-
-
-
-
\ 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