Compare commits
12 Commits
8a430faf4c
...
david/clar
Author | SHA1 | Date | |
---|---|---|---|
e009f68fbe | |||
671fa54f6f | |||
517432679b | |||
b31c01f724 | |||
f41213f13f | |||
28be7c4650 | |||
2f340b13b2 | |||
312c818866 | |||
0d69d0c4a2 | |||
81a0b8c820 | |||
172b5aee90 | |||
2b5338a9df |
23
Makefile
23
Makefile
@@ -14,7 +14,7 @@ endif
|
|||||||
PROJECT_PLAYER=./build/${BC_VAR_CURRENT_BUILD}/bin/${BC_VAR_PROJECT_NAME_CAP}
|
PROJECT_PLAYER=./build/${BC_VAR_CURRENT_BUILD}/bin/${BC_VAR_PROJECT_NAME_CAP}
|
||||||
|
|
||||||
.PHONY: pkg-gba
|
.PHONY: pkg-gba
|
||||||
pkg-gba: build
|
pkg-gba: build-pack build-gba-player
|
||||||
${BC_CMD_ENVRUN} ${BC_PY3} ./util/scripts/pkg-gba.py sample_project ${BC_VAR_PROJECT_NAME_CAP}
|
${BC_CMD_ENVRUN} ${BC_PY3} ./util/scripts/pkg-gba.py sample_project ${BC_VAR_PROJECT_NAME_CAP}
|
||||||
|
|
||||||
.PHONY: pkg-mac
|
.PHONY: pkg-mac
|
||||||
@@ -26,25 +26,44 @@ generate-studio-rsrc:
|
|||||||
${BC_CMD_ENVRUN} ${BC_PY3} ./util/scripts/file-to-cpp.py --rsrc src/olympic/studio/applib/src/rsrc.json
|
${BC_CMD_ENVRUN} ${BC_PY3} ./util/scripts/file-to-cpp.py --rsrc src/olympic/studio/applib/src/rsrc.json
|
||||||
${BC_CMD_ENVRUN} ${BC_PY3} ./util/scripts/file-to-cpp.py --rsrc src/nostalgia/studio/rsrc.json
|
${BC_CMD_ENVRUN} ${BC_PY3} ./util/scripts/file-to-cpp.py --rsrc src/nostalgia/studio/rsrc.json
|
||||||
|
|
||||||
|
.PHONY: build-gba-player
|
||||||
|
build-gba-player:
|
||||||
|
cmake --build ./build/gba-*
|
||||||
|
|
||||||
.PHONY: build-player
|
.PHONY: build-player
|
||||||
build-player:
|
build-player:
|
||||||
${BC_CMD_CMAKE_BUILD} ${BC_VAR_BUILD_PATH} ${BC_VAR_PROJECT_NAME_CAP}
|
${BC_CMD_CMAKE_BUILD} ${BC_VAR_BUILD_PATH} ${BC_VAR_PROJECT_NAME_CAP}
|
||||||
|
|
||||||
|
.PHONY: build-pack
|
||||||
|
build-pack:
|
||||||
|
cmake --build ./build/${BC_VAR_CURRENT_BUILD} --target ${BC_VAR_PROJECT_NAME}-pack
|
||||||
|
|
||||||
|
|
||||||
.PHONY: run
|
.PHONY: run
|
||||||
run: build-player
|
run: build-player
|
||||||
${PROJECT_PLAYER} sample_project
|
${PROJECT_PLAYER} sample_project
|
||||||
|
|
||||||
|
.PHONY: build-studio
|
||||||
|
build-studio:
|
||||||
|
cmake --build ./build/${BC_VAR_CURRENT_BUILD} --target ${BC_VAR_PROJECT_NAME_CAP}Studio
|
||||||
|
|
||||||
.PHONY: run-studio
|
.PHONY: run-studio
|
||||||
run-studio: build
|
run-studio: build-studio
|
||||||
${PROJECT_STUDIO}
|
${PROJECT_STUDIO}
|
||||||
|
|
||||||
.PHONY: gba-run
|
.PHONY: gba-run
|
||||||
gba-run: pkg-gba
|
gba-run: pkg-gba
|
||||||
${MGBA} ${BC_VAR_PROJECT_NAME_CAP}.gba
|
${MGBA} ${BC_VAR_PROJECT_NAME_CAP}.gba
|
||||||
|
|
||||||
.PHONY: debug
|
.PHONY: debug
|
||||||
debug: build
|
debug: build
|
||||||
${BC_CMD_HOST_DEBUGGER} ${PROJECT_PLAYER} sample_project
|
${BC_CMD_HOST_DEBUGGER} ${PROJECT_PLAYER} sample_project
|
||||||
|
|
||||||
.PHONY: debug-studio
|
.PHONY: debug-studio
|
||||||
debug-studio: build
|
debug-studio: build
|
||||||
${BC_CMD_HOST_DEBUGGER} ${PROJECT_STUDIO}
|
${BC_CMD_HOST_DEBUGGER} ${PROJECT_STUDIO}
|
||||||
|
|
||||||
|
|
||||||
.PHONY: configure-gba
|
.PHONY: configure-gba
|
||||||
configure-gba:
|
configure-gba:
|
||||||
${BC_CMD_SETUP_BUILD} --toolchain=deps/gbabuildcore/cmake/modules/GBA.cmake --target=gba --current_build=0 --build_type=release --build_root=${BC_VAR_BUILD_PATH}
|
${BC_CMD_SETUP_BUILD} --toolchain=deps/gbabuildcore/cmake/modules/GBA.cmake --target=gba --current_build=0 --build_type=release --build_root=${BC_VAR_BUILD_PATH}
|
||||||
|
2
deps/ox/src/ox/clargs/clargs.cpp
vendored
2
deps/ox/src/ox/clargs/clargs.cpp
vendored
@@ -40,7 +40,7 @@ ClArgs::ClArgs(ox::SpanView<const char*> args) noexcept {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool ClArgs::getBool(ox::StringViewCR arg, bool defaultValue) const noexcept {
|
bool ClArgs::getBool(ox::StringViewCR arg, bool defaultValue) const noexcept {
|
||||||
auto const [value, err] = m_ints.at(arg);
|
auto const [value, err] = m_bools.at(arg);
|
||||||
return !err ? *value : defaultValue;
|
return !err ? *value : defaultValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
4
deps/ox/src/ox/fs/filesystem/filesystem.hpp
vendored
4
deps/ox/src/ox/fs/filesystem/filesystem.hpp
vendored
@@ -87,7 +87,7 @@ class FileSystem {
|
|||||||
return writeFilePath(path, buffer, size, FileType::NormalFile);
|
return writeFilePath(path, buffer, size, FileType::NormalFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
Error write(StringViewCR path, ox::Span<char> const&buff) noexcept {
|
Error write(StringViewCR path, ox::SpanView<char> const&buff) noexcept {
|
||||||
return write(path, buff.data(), buff.size(), FileType::NormalFile);
|
return write(path, buff.data(), buff.size(), FileType::NormalFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -95,7 +95,7 @@ class FileSystem {
|
|||||||
return write(inode, buffer, size, FileType::NormalFile);
|
return write(inode, buffer, size, FileType::NormalFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
Error write(uint64_t inode, ox::Span<char> const&buff) noexcept {
|
Error write(uint64_t inode, ox::SpanView<char> const&buff) noexcept {
|
||||||
return write(inode, buff.data(), buff.size(), FileType::NormalFile);
|
return write(inode, buff.data(), buff.size(), FileType::NormalFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
1
deps/ox/src/ox/mc/test/tests.cpp
vendored
1
deps/ox/src/ox/mc/test/tests.cpp
vendored
@@ -157,7 +157,6 @@ std::map<ox::StringView, ox::Error(*)()> tests = {
|
|||||||
oxAssert(testIn.Int8 == testOut.Int8, "Int8 value mismatch");
|
oxAssert(testIn.Int8 == testOut.Int8, "Int8 value mismatch");
|
||||||
oxAssert(testIn.Union.Int == testOut.Union.Int, "Union.Int value mismatch");
|
oxAssert(testIn.Union.Int == testOut.Union.Int, "Union.Int value mismatch");
|
||||||
oxAssert(testIn.String == testOut.String, "String value mismatch");
|
oxAssert(testIn.String == testOut.String, "String value mismatch");
|
||||||
oxDebugf("{}", testOut.IString.size());
|
|
||||||
oxExpect(testIn.IString, testOut.IString);
|
oxExpect(testIn.IString, testOut.IString);
|
||||||
oxAssert(testIn.List[0] == testOut.List[0], "List[0] value mismatch");
|
oxAssert(testIn.List[0] == testOut.List[0], "List[0] value mismatch");
|
||||||
oxAssert(testIn.List[1] == testOut.List[1], "List[1] value mismatch");
|
oxAssert(testIn.List[1] == testOut.List[1], "List[1] value mismatch");
|
||||||
|
1
deps/ox/src/ox/oc/read.hpp
vendored
1
deps/ox/src/ox/oc/read.hpp
vendored
@@ -181,7 +181,6 @@ Error OrganicClawReader::field(const char *key, T *val) noexcept {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (Json::LogicError const&e) {
|
} catch (Json::LogicError const&e) {
|
||||||
oxDebugf("JSON error: {}", e.what());
|
|
||||||
err = ox::Error(1, "error reading JSON data");
|
err = ox::Error(1, "error reading JSON data");
|
||||||
}
|
}
|
||||||
++m_fieldIt;
|
++m_fieldIt;
|
||||||
|
2
deps/ox/src/ox/std/assert.cpp
vendored
2
deps/ox/src/ox/std/assert.cpp
vendored
@@ -33,7 +33,7 @@ void panic(StringViewCR file, int const line, StringViewCR panicMsg, Error const
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#if __GNUC__
|
#if __GNUC__ && !_WIN32
|
||||||
__attribute__((weak))
|
__attribute__((weak))
|
||||||
#endif
|
#endif
|
||||||
void panic(const char *file, int const line, char const*panicMsg, Error const&err) noexcept {
|
void panic(const char *file, int const line, char const*panicMsg, Error const&err) noexcept {
|
||||||
|
1
deps/ox/src/ox/std/test/tests.cpp
vendored
1
deps/ox/src/ox/std/test/tests.cpp
vendored
@@ -337,7 +337,6 @@ OX_CLANG_NOWARN_END
|
|||||||
oxExpect(si["asdf"], 0);
|
oxExpect(si["asdf"], 0);
|
||||||
oxAssert(si["aoeu"] == 100, "aoeu != 100");
|
oxAssert(si["aoeu"] == 100, "aoeu != 100");
|
||||||
auto si2 = si;
|
auto si2 = si;
|
||||||
oxDebugf("{}", si2["asdf"]);
|
|
||||||
oxExpect(si2["asdf"], 0);
|
oxExpect(si2["asdf"], 0);
|
||||||
oxAssert(si2["aoeu"] == 100, "aoeu != 100");
|
oxAssert(si2["aoeu"] == 100, "aoeu != 100");
|
||||||
ox::HashMap<int, int> ii;
|
ox::HashMap<int, int> ii;
|
||||||
|
4
deps/ox/src/ox/std/trace.hpp
vendored
4
deps/ox/src/ox/std/trace.hpp
vendored
@@ -268,7 +268,7 @@ using TraceStream = NullStream;
|
|||||||
|
|
||||||
inline void logError(const char *file, int line, const char *fmt, const Error &err) noexcept {
|
inline void logError(const char *file, int line, const char *fmt, const Error &err) noexcept {
|
||||||
if (err) {
|
if (err) {
|
||||||
TraceStream trc(file, line, "ox::error");
|
TraceStream trc(file, line, "ox.error");
|
||||||
if (err.src.file_name() != nullptr) {
|
if (err.src.file_name() != nullptr) {
|
||||||
trc << "Error: (" << err.src.file_name() << ":" << err.src.line() << "):";
|
trc << "Error: (" << err.src.file_name() << ":" << err.src.line() << "):";
|
||||||
} else {
|
} else {
|
||||||
@@ -280,7 +280,7 @@ inline void logError(const char *file, int line, const char *fmt, const Error &e
|
|||||||
|
|
||||||
inline void logError(const char *file, int line, const Error &err) noexcept {
|
inline void logError(const char *file, int line, const Error &err) noexcept {
|
||||||
if (err) {
|
if (err) {
|
||||||
TraceStream trc(file, line, "ox::error");
|
TraceStream trc(file, line, "ox.error");
|
||||||
trc << "Error:" << err;
|
trc << "Error:" << err;
|
||||||
if (err.src.file_name() != nullptr) {
|
if (err.src.file_name() != nullptr) {
|
||||||
trc << "(" << err.src.file_name() << ":" << err.src.line() << ")";
|
trc << "(" << err.src.file_name() << ":" << err.src.line() << ")";
|
||||||
|
15
deps/ox/src/ox/std/vector.hpp
vendored
15
deps/ox/src/ox/std/vector.hpp
vendored
@@ -271,7 +271,9 @@ class Vector: detail::VectorAllocator<T, Allocator, SmallVectorSize> {
|
|||||||
template<typename... Args>
|
template<typename... Args>
|
||||||
constexpr T &emplace_back(Args&&... args) noexcept(useNoexcept);
|
constexpr T &emplace_back(Args&&... args) noexcept(useNoexcept);
|
||||||
|
|
||||||
constexpr void push_back(T item) noexcept(useNoexcept);
|
constexpr void push_back(T const &item) noexcept(useNoexcept);
|
||||||
|
|
||||||
|
constexpr void push_back(T &&item) noexcept(useNoexcept);
|
||||||
|
|
||||||
constexpr void pop_back() noexcept(useNoexcept);
|
constexpr void pop_back() noexcept(useNoexcept);
|
||||||
|
|
||||||
@@ -601,7 +603,16 @@ constexpr T &Vector<T, SmallVectorSize, Allocator>::emplace_back(Args&&... args)
|
|||||||
}
|
}
|
||||||
|
|
||||||
template<typename T, std::size_t SmallVectorSize, typename Allocator>
|
template<typename T, std::size_t SmallVectorSize, typename Allocator>
|
||||||
constexpr void Vector<T, SmallVectorSize, Allocator>::push_back(T item) noexcept(useNoexcept) {
|
constexpr void Vector<T, SmallVectorSize, Allocator>::push_back(T const &item) noexcept(useNoexcept) {
|
||||||
|
if (m_size == m_cap) {
|
||||||
|
reserve(m_cap ? m_cap * 2 : initialCap);
|
||||||
|
}
|
||||||
|
std::construct_at(&m_items[m_size], item);
|
||||||
|
++m_size;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T, std::size_t SmallVectorSize, typename Allocator>
|
||||||
|
constexpr void Vector<T, SmallVectorSize, Allocator>::push_back(T &&item) noexcept(useNoexcept) {
|
||||||
if (m_size == m_cap) {
|
if (m_size == m_cap) {
|
||||||
reserve(m_cap ? m_cap * 2 : initialCap);
|
reserve(m_cap ? m_cap * 2 : initialCap);
|
||||||
}
|
}
|
||||||
|
@@ -5,6 +5,13 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <ox/std/error.hpp>
|
#include <ox/std/error.hpp>
|
||||||
|
#include <ox/std/span.hpp>
|
||||||
|
#include <ox/std/stringview.hpp>
|
||||||
|
|
||||||
|
#include <studio/project.hpp>
|
||||||
|
|
||||||
|
#include <nostalgia/gfx/palette.hpp>
|
||||||
|
#include <nostalgia/gfx/tilesheet.hpp>
|
||||||
|
|
||||||
namespace nostalgia::gfx {
|
namespace nostalgia::gfx {
|
||||||
|
|
||||||
|
@@ -3,7 +3,6 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <imgui.h>
|
#include <imgui.h>
|
||||||
#include <lodepng.h>
|
|
||||||
|
|
||||||
#include <ox/std/point.hpp>
|
#include <ox/std/point.hpp>
|
||||||
#include <keel/media.hpp>
|
#include <keel/media.hpp>
|
||||||
|
@@ -57,7 +57,6 @@ class TileSheetEditorImGui: public studio::Editor {
|
|||||||
ox::Vec2 m_prevMouseDownPos;
|
ox::Vec2 m_prevMouseDownPos;
|
||||||
TileSheetTool m_tool = TileSheetTool::Draw;
|
TileSheetTool m_tool = TileSheetTool::Draw;
|
||||||
bool m_palPathFocused{};
|
bool m_palPathFocused{};
|
||||||
ox::Vector<ox::UPtr<studio::UndoCommand>, 1> m_deferredCmds;
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
TileSheetEditorImGui(studio::Context &sctx, ox::StringParam path);
|
TileSheetEditorImGui(studio::Context &sctx, ox::StringParam path);
|
||||||
|
@@ -187,7 +187,7 @@ static ox::Error copy(
|
|||||||
OX_DEFER [&status] {
|
OX_DEFER [&status] {
|
||||||
oxOutf(" {}\n", status);
|
oxOutf(" {}\n", status);
|
||||||
};
|
};
|
||||||
OX_REQUIRE_M(buff, src.read(currentFile));
|
OX_REQUIRE(buff, src.read(currentFile));
|
||||||
// write file to dest
|
// write file to dest
|
||||||
OX_RETURN_ERROR(dest.write(currentFile, buff));
|
OX_RETURN_ERROR(dest.write(currentFile, buff));
|
||||||
status = "OK";
|
status = "OK";
|
||||||
|
@@ -31,7 +31,7 @@ ox::Result<T> getDragDropPayload(ox::CStringViewCR name) noexcept {
|
|||||||
return ox::Error(1, "No drag/drop payload");
|
return ox::Error(1, "No drag/drop payload");
|
||||||
}
|
}
|
||||||
return ox::readClaw<T>({
|
return ox::readClaw<T>({
|
||||||
reinterpret_cast<char const*>(payload->Data),
|
std::launder(reinterpret_cast<char const*>(payload->Data)),
|
||||||
static_cast<size_t>(payload->DataSize)});
|
static_cast<size_t>(payload->DataSize)});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user