Segfault on usage of std::function from ticc_funcs.

This commit is contained in:
2025-03-27 17:44:21 -04:00
parent 3dd9d65964
commit f94c8b8e72
13 changed files with 239 additions and 188 deletions

View File

@@ -4,8 +4,6 @@
"display-name": "Void",
"item-tooltip": "How did you even get this?",
"solid": true,
"does-random-ticc": false,
"does-forced-ticc": false,
"color": "#FFFFFFFF",
"hardcoded-id": 65535,
"render": false
@@ -14,8 +12,6 @@
"mnemonic-id" : "air",
"display-name" : "Air",
"solid": true,
"does-random-ticc": false,
"does-forced-ticc": false,
"color": "#FFFFFFFF",
"hardcoded-id": 0,
"render": false
@@ -24,8 +20,6 @@
"mnemonic-id" : "stone",
"display-name" : "Stone",
"solid": true,
"does-random-ticc": false,
"does-forced-ticc": false,
"color": [112, 128, 144],
"pallet": [[112, 122, 148], [119, 136, 153], [121, 115, 138]]
},
@@ -33,8 +27,6 @@
"mnemonic-id" : "dirt",
"display-name" : "Dirt",
"solid": true,
"does-random-ticc": false,
"does-forced-ticc": false,
"color": [210, 105, 30],
"pallet": [[210, 125, 30], [195, 105, 40], [210, 105, 30]]
},
@@ -42,32 +34,24 @@
"mnemonic-id" : "mud",
"display-name" : "Mud",
"solid": true,
"does-random-ticc": false,
"does-forced-ticc": false,
"color": [139, 69, 19]
},
{
"mnemonic-id" : "limestone",
"display-name" : "Limestone",
"solid": true,
"does-random-ticc": false,
"does-forced-ticc": false,
"color": [238, 232, 170]
},
{
"mnemonic-id" : "basalt",
"display-name" : "Basalt",
"solid": true,
"does-random-ticc": false,
"does-forced-ticc": false,
"color": [105, 105, 105]
},
{
"mnemonic-id" : "cobblestone",
"display-name" : "Cobblestone",
"solid": true,
"does-random-ticc": false,
"does-forced-ticc": false,
"color": [112, 128, 144],
"pallet": [[64, 64, 64], [92, 92, 92], [112, 128, 144], [119, 136, 153]],
"drops" : null
@@ -76,8 +60,6 @@
"mnemonic-id" : "red-moss",
"display-name" : "Red Moss",
"solid": true,
"does-random-ticc": false,
"does-forced-ticc": false,
"color": "#CC4444"
},
@@ -85,16 +67,12 @@
"mnemonic-id" : "brown-moss",
"display-name" : "Brown Moss",
"solid": true,
"does-random-ticc": false,
"does-forced-ticc": false,
"color": "#BB7755"
},
{
"mnemonic-id" : "green-moss",
"display-name" : "Green Moss",
"solid": true,
"does-random-ticc": false,
"does-forced-ticc": false,
"color": "#FFFFFF",
"pallet": []
},
@@ -102,35 +80,26 @@
"mnemonic-id" : "lava-moss",
"display-name" : "Lava Moss",
"solid": true,
"does-random-ticc": false,
"does-forced-ticc": false,
"color": "#FFFFFF"
},
{
"mnemonic-id" : "granite",
"display-name" : "Granite",
"solid": true,
"does-random-ticc": false,
"does-forced-ticc": false,
"color": "#FFFFFF",
"random-ticc-func": "zzyyzz",
"forced-ticc-func": "zzyyzz",
"drops" : null
},
{
"mnemonic-id" : "marble",
"display-name" : "Marble",
"solid": true,
"does-random-ticc": false,
"does-forced-ticc": false,
"color": "#FFFFFF"
},
{
"mnemonic-id" : "grass",
"display-name" : "Grass",
"solid": true,
"does-random-ticc": false,
"does-forced-ticc": false,
"color": [124, 252, 0],
"pallet": [[126, 252, 5], [122, 238, 0], [124, 248, 12]]
},
@@ -138,24 +107,19 @@
"mnemonic-id" : "glowy-grass",
"display-name" : "Glowy Grass",
"solid": true,
"does-random-ticc": false,
"does-forced-ticc": false,
"color": "#FFFFFF"
},
{
"mnemonic-id" : "vine",
"display-name" : "Vine",
"solid": false,
"does-random-ticc": false,
"does-forced-ticc": false,
"color": [32, 139, 34]
},
{
"mnemonic-id" : "sand",
"display-name" : "Sand",
"solid": false,
"does-random-ticc": false,
"does-forced-ticc": false,
"forced-ticc-func": "sand-grav",
"color": [238, 232, 170],
"pallet": [[238, 232, 170], [232, 238, 160], [218, 212, 175]]
},
@@ -163,96 +127,75 @@
"mnemonic-id" : "white-sand",
"display-name" : "White Sand",
"solid": false,
"does-random-ticc": false,
"does-forced-ticc": false,
"forced-ticc-func": "sand-grav",
"color": "#FFFFFF"
},
{
"mnemonic-id" : "red-sand",
"display-name" : "Red Sand",
"solid": false,
"does-random-ticc": false,
"does-forced-ticc": false,
"forced-ticc-func": "sand-grav",
"color": "#FFFFFF"
},
{
"mnemonic-id" : "black-sand",
"display-name" : "Black Sand",
"solid": false,
"does-random-ticc": false,
"does-forced-ticc": false,
"forced-ticc-func": "sand-grav",
"color": "#FFFFFF"
},
{
"mnemonic-id" : "sandstone",
"display-name" : "Sandstone",
"solid": false,
"does-random-ticc": false,
"does-forced-ticc": false,
"color": "#FFFFFF"
},
{
"mnemonic-id" : "white-sandstone",
"display-name" : "White Sandstone",
"solid": false,
"does-random-ticc": false,
"does-forced-ticc": false,
"color": "#FFFFFF"
},
{
"mnemonic-id" : "black-sandstone",
"display-name" : "Black Sandstone",
"solid": false,
"does-random-ticc": false,
"does-forced-ticc": false,
"color": "#FFFFFF"
},
{
"mnemonic-id" : "ash",
"display-name" : "Ash",
"solid": false,
"does-random-ticc": false,
"does-forced-ticc": false,
"color": "#FFFFFF"
},
{
"mnemonic-id" : "clay",
"display-name" : "Clay",
"solid": false,
"does-random-ticc": false,
"does-forced-ticc": false,
"color": "#FFFFFF"
},
{
"mnemonic-id" : "silt",
"display-name" : "Silt",
"solid": false,
"does-random-ticc": false,
"does-forced-ticc": false,
"color": "#FFFFFF"
},
{
"mnemonic-id" : "snow",
"display-name" : "Snow",
"solid": false,
"does-random-ticc": false,
"does-forced-ticc": false,
"color": "#FFFFFF"
},
{
"mnemonic-id" : "ice",
"display-name" : "Ice",
"solid": false,
"does-random-ticc": false,
"does-forced-ticc": false,
"color": "#FFFFFF"
},
{
"mnemonic-id" : "slush",
"display-name" : "Slush",
"solid": false,
"does-random-ticc": false,
"does-forced-ticc": false,
"color": "#FFFFFF",
"pallet": []
},
@@ -261,8 +204,6 @@
"mnemonic-id" : "stone-brick",
"display-name" : "Gray Brick",
"solid": false,
"does-random-ticc": false,
"does-forced-ticc": false,
"color": "#FFFFFF",
"pallet": []
},
@@ -363,12 +304,8 @@
"mnemonic-id" : "water",
"display-name" : "Water",
"solid": true,
"does-random-ticc": false,
"does-forced-ticc": true,
"color": "#0000FF",
"pallet": [],
"random-ticc-func": "zzyyzz",
"forced-ticc-func": "zzyyzz",
"drops" : null
},
@@ -376,72 +313,49 @@
"mnemonic-id" : "blood",
"display-name" : "Blood",
"solid": true,
"does-random-ticc": false,
"does-forced-ticc": true,
"color": "#0000FF",
"pallet": [],
"random-ticc-func": "zzyyzz",
"forced-ticc-func": "zzyyzz",
"drops" : null
},
{
"mnemonic-id" : "sludge",
"display-name" : "Sludge",
"solid": true,
"does-random-ticc": false,
"does-forced-ticc": true,
"color": "#0000FF",
"pallet": [],
"random-ticc-func": "zzyyzz",
"forced-ticc-func": "zzyyzz",
"drops" : null
},
{
"mnemonic-id" : "lava",
"display-name" : "Lava",
"solid": true,
"does-random-ticc": false,
"does-forced-ticc": true,
"color": "#0000FF",
"pallet": [],
"random-ticc-func": "zzyyzz",
"forced-ticc-func": "zzyyzz",
"drops" : null
},
{
"mnemonic-id" : "ectoplasm",
"display-name" : "Ectoplasm",
"solid": true,
"does-random-ticc": false,
"does-forced-ticc": true,
"color": "#0000FF",
"pallet": [],
"random-ticc-func": "zzyyzz",
"forced-ticc-func": "zzyyzz",
"drops" : null
},
{
"mnemonic-id" : "milk",
"display-name" : "Milk",
"solid": true,
"does-random-ticc": false,
"does-forced-ticc": true,
"color": "#0000FF",
"pallet": [],
"random-ticc-func": "zzyyzz",
"forced-ticc-func": "zzyyzz",
"drops" : null
},
{
"mnemonic-id" : "honey",
"display-name" : "Honey",
"solid": true,
"does-random-ticc": false,
"does-forced-ticc": true,
"color": "#0000FF",
"pallet": [],
"random-ticc-func": "zzyyzz",
"forced-ticc-func": "zzyyzz",
"drops" : null
}
]

View File

@@ -1,7 +1,7 @@
#include <Client/CreditsWindow.hpp>
#include "ClientApp/CaveGameWindow.hpp"
//#include <bits/random.h>
#include <bits/random.h>
#include <Core/Explosion.hpp>
#include <Core/Loggers.hpp>
#include <Core/Player.hpp>
@@ -12,45 +12,13 @@
#include <Core/TileRegistry.hpp>
#include <JJX/JSON.hpp>
namespace CaveGame::ClientApp
{
namespace CaveGame::ClientApp {
using namespace CaveGame::Core;
using namespace CaveGame::Client;
void ReadRecipesAndRegister() {}
void ReadItemDataAndRegister() {
using namespace JJX;
std::string content = read_file("assets/data/items.json");
auto [data, parse_error] = json::parse(content);
if (data.type != json::value_type::array) {
// TODO: Error
return;
}
for (auto& entry : data.array.value()) {
Core::Item item;
auto entry_obj = json::object_val(entry);
item.mnemonic = entry_obj["mnemonic-id"];
item.display_name = entry_obj["display-name"];
Items().Register(item);
}
for (auto [name, item] : Items().GetItemMap()) {
std::cout << name << std::endl;
}
}
CaveGameWindow::CaveGameWindow(const std::string& title, int width, int height): ReWindow::OpenGLWindow(title, width, height, 2, 1)
{
Logs::Info("Parsing Tile Data.");