mirror of
https://github.com/whoahq/whoa.git
synced 2026-08-04 16:04:30 +03:00
Compare commits
10 Commits
7c2e1e582c
...
c043690b13
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c043690b13 | ||
|
|
ea13456360 | ||
|
|
7fcf8a2584 | ||
|
|
684e293452 | ||
|
|
8231f14cbc | ||
|
|
57fbf42475 | ||
|
|
7ed3475059 | ||
|
|
0163d91543 | ||
|
|
dd3a0f6a81 | ||
|
|
c12a79d6e6 |
10
.github/workflows/pr.yml
vendored
10
.github/workflows/pr.yml
vendored
@ -1,6 +1,6 @@
|
||||
name: PR
|
||||
|
||||
on: [pull_request_target]
|
||||
on: [pull_request]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
@ -45,14 +45,10 @@ jobs:
|
||||
if: matrix.build.os == 'ubuntu-latest'
|
||||
|
||||
- name: Download Fixtures
|
||||
run: aws s3 cp --endpoint-url ${{ env.AWS_ENDPOINT_URL }} s3://reliquaryhq-whoa/fixture.tgz test/fixture/
|
||||
env:
|
||||
AWS_ACCESS_KEY_ID: ${{ secrets.STORAGE_AWS_ACCESS_KEY_ID }}
|
||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.STORAGE_AWS_SECRET_ACCESS_KEY }}
|
||||
AWS_ENDPOINT_URL: ${{ vars.STORAGE_AWS_ENDPOINT_URL }}
|
||||
run: curl -o test/fixture/whoa-fixture.tgz https://whoa.reliquaryhq.com/whoa-fixture.tgz
|
||||
|
||||
- name: Unpack Fixtures
|
||||
run: tar -xvzf fixture.tgz
|
||||
run: tar -xvzf whoa-fixture.tgz
|
||||
working-directory: test/fixture
|
||||
|
||||
- name: Prepare
|
||||
|
||||
8
.github/workflows/push.yml
vendored
8
.github/workflows/push.yml
vendored
@ -44,14 +44,10 @@ jobs:
|
||||
submodules: recursive
|
||||
|
||||
- name: Download Fixtures
|
||||
run: aws s3 cp --endpoint-url ${{ env.AWS_ENDPOINT_URL }} s3://reliquaryhq-whoa/fixture.tgz test/fixture/
|
||||
env:
|
||||
AWS_ACCESS_KEY_ID: ${{ secrets.STORAGE_AWS_ACCESS_KEY_ID }}
|
||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.STORAGE_AWS_SECRET_ACCESS_KEY }}
|
||||
AWS_ENDPOINT_URL: ${{ vars.STORAGE_AWS_ENDPOINT_URL }}
|
||||
run: curl -o test/fixture/whoa-fixture.tgz https://whoa.reliquaryhq.com/whoa-fixture.tgz
|
||||
|
||||
- name: Unpack Fixtures
|
||||
run: tar -xvzf fixture.tgz
|
||||
run: tar -xvzf whoa-fixture.tgz
|
||||
working-directory: test/fixture
|
||||
|
||||
- name: Prepare
|
||||
|
||||
@ -84,6 +84,26 @@ CONSOLELINE::~CONSOLELINE() {
|
||||
}
|
||||
}
|
||||
|
||||
void CONSOLELINE::Backspace() {
|
||||
if (this->inputpos > this->inputstart) {
|
||||
if (this->chars <= this->inputpos) {
|
||||
this->buffer[this->inputpos - 1] = '\0';
|
||||
}
|
||||
else {
|
||||
memcpy(
|
||||
&this->buffer[this->inputpos - 1],
|
||||
&this->buffer[this->inputpos],
|
||||
this->chars - this->inputpos + 1
|
||||
);
|
||||
}
|
||||
|
||||
this->inputpos--;
|
||||
this->chars--;
|
||||
|
||||
SetInputString(this->buffer);
|
||||
}
|
||||
}
|
||||
|
||||
void DrawBackground() {
|
||||
uint16_t indices[] = {
|
||||
0, 1, 2, 3
|
||||
|
||||
@ -19,6 +19,7 @@ class CONSOLELINE : public TSLinkedNode<CONSOLELINE> {
|
||||
|
||||
// Member functions
|
||||
~CONSOLELINE();
|
||||
void Backspace();
|
||||
};
|
||||
|
||||
void ConsoleScreenAnimate(float elapsedSec);
|
||||
|
||||
@ -3,9 +3,9 @@
|
||||
#include "db/Db.hpp"
|
||||
#include "glue/CGlueMgr.hpp"
|
||||
#include "glue/CRealmList.hpp"
|
||||
#include "util/StringTo.hpp"
|
||||
#include "ui/FrameScript.hpp"
|
||||
#include "ui/Types.hpp"
|
||||
#include "ui/Util.hpp"
|
||||
#include "util/Lua.hpp"
|
||||
#include "util/Unimplemented.hpp"
|
||||
#include <cstdint>
|
||||
|
||||
@ -33,11 +33,11 @@ void Blit_uint16_uint16(const C2iVector& size, const void* in, uint32_t inStride
|
||||
return;
|
||||
}
|
||||
|
||||
const char* in_ = reinterpret_cast<const char*>(in);
|
||||
char* out_ = reinterpret_cast<char*>(out);
|
||||
auto in_ = static_cast<const char*>(in);
|
||||
auto out_ = static_cast<char*>(out);
|
||||
|
||||
for (int32_t i = 0; i < size.y; i++) {
|
||||
memcpy(out, in, 2 * size.x);
|
||||
memcpy(out_, in_, 2 * size.x);
|
||||
in_ += inStride;
|
||||
out_ += outStride;
|
||||
}
|
||||
@ -49,11 +49,11 @@ void Blit_uint32_uint32(const C2iVector& size, const void* in, uint32_t inStride
|
||||
return;
|
||||
}
|
||||
|
||||
const char* in_ = reinterpret_cast<const char*>(in);
|
||||
char* out_ = reinterpret_cast<char*>(out);
|
||||
auto in_ = static_cast<const char*>(in);
|
||||
auto out_ = static_cast<char*>(out);
|
||||
|
||||
for (int32_t i = 0; i < size.y; i++) {
|
||||
memcpy(out, in, 4 * size.x);
|
||||
memcpy(out_, in_, 4 * size.x);
|
||||
in_ += inStride;
|
||||
out_ += outStride;
|
||||
}
|
||||
@ -180,13 +180,10 @@ void Blit_Dxt1_Rgb565(const C2iVector& size, const void* in, uint32_t inStride,
|
||||
}
|
||||
|
||||
void Blit_Dxt1_Dxt1(const C2iVector& size, const void* in, uint32_t inStride, void* out, uint32_t outStride) {
|
||||
const char* in_ = static_cast<const char*>(in);
|
||||
char* out_ = static_cast<char*>(out);
|
||||
|
||||
int32_t v6 = std::max(size.x, 4);
|
||||
int32_t v7 = std::max(size.y, 4);
|
||||
|
||||
memcpy(out_, in_, (4 * v6 * v7) >> 3);
|
||||
memcpy(out, in, (4 * v6 * v7) >> 3);
|
||||
}
|
||||
|
||||
void Blit_Dxt3_Argb8888(const C2iVector& size, const void* in, uint32_t inStride, void* out, uint32_t outStride) {
|
||||
@ -201,14 +198,14 @@ void Blit_Dxt35_Dxt35(const C2iVector& size, const void* in, uint32_t inStride,
|
||||
int32_t v5 = std::max(size.x, 4);
|
||||
int32_t v6 = std::max(size.y / 4, 1);
|
||||
|
||||
const char* in_ = static_cast<const char*>(in);
|
||||
char* out_ = static_cast<char*>(out);
|
||||
|
||||
if (inStride == v5 * 4 && outStride == v5 * 4) {
|
||||
memcpy(out_, in_, v5 * v6 * 4);
|
||||
memcpy(out, in, v5 * v6 * 4);
|
||||
return;
|
||||
}
|
||||
|
||||
auto in_ = static_cast<const char*>(in);
|
||||
auto out_ = static_cast<char*>(out);
|
||||
|
||||
for (int32_t i = v6; i > 0; i--) {
|
||||
memcpy(out_, in_, v5 * 4);
|
||||
in_ += inStride;
|
||||
|
||||
@ -4,7 +4,6 @@
|
||||
#include "ui/LoadXML.hpp"
|
||||
#include "ui/Util.hpp"
|
||||
#include "util/CStatus.hpp"
|
||||
#include "util/StringTo.hpp"
|
||||
#include <common/XML.hpp>
|
||||
#include <storm/Error.hpp>
|
||||
|
||||
|
||||
@ -2,11 +2,11 @@
|
||||
#include "gx/Coordinate.hpp"
|
||||
#include "ui/CScriptRegion.hpp"
|
||||
#include "ui/FrameScript_Object.hpp"
|
||||
#include "ui/Util.hpp"
|
||||
#include "ui/simple/CSimpleFontString.hpp"
|
||||
#include "ui/simple/CSimpleTexture.hpp"
|
||||
#include "ui/simple/CSimpleTop.hpp"
|
||||
#include "util/Lua.hpp"
|
||||
#include "util/StringTo.hpp"
|
||||
#include "util/Unimplemented.hpp"
|
||||
#include <cstdint>
|
||||
#include <tempest/Rect.hpp>
|
||||
|
||||
239
src/ui/Util.cpp
239
src/ui/Util.cpp
@ -1,5 +1,5 @@
|
||||
#include "ui/Util.hpp"
|
||||
#include <type_traits>
|
||||
#include "util/Lua.hpp"
|
||||
#include <storm/String.hpp>
|
||||
|
||||
const char* LanguageProcess(const char* string) {
|
||||
@ -9,101 +9,248 @@ const char* LanguageProcess(const char* string) {
|
||||
|
||||
int32_t StringToBlendMode(const char* string, EGxBlend& blend) {
|
||||
struct BlendEntry {
|
||||
EGxBlend value;
|
||||
const char* string;
|
||||
EGxBlend value;
|
||||
};
|
||||
|
||||
static BlendEntry blendMap[] = {
|
||||
{ GxBlend_Opaque, "DISABLE" },
|
||||
{ GxBlend_Alpha, "BLEND" },
|
||||
{ GxBlend_AlphaKey, "ALPHAKEY" },
|
||||
{ GxBlend_Add, "ADD" },
|
||||
{ GxBlend_Mod, "MOD" }
|
||||
{ "DISABLE", GxBlend_Opaque },
|
||||
{ "BLEND", GxBlend_Alpha },
|
||||
{ "ALPHAKEY", GxBlend_AlphaKey },
|
||||
{ "ADD", GxBlend_Add },
|
||||
{ "MOD", GxBlend_Mod },
|
||||
};
|
||||
|
||||
for (int32_t i = 0; i < std::extent<decltype(blendMap)>::value; i++) {
|
||||
if (!SStrCmpI(blendMap[i].string, string, 0x7FFFFFFFu)) {
|
||||
blend = blendMap[i].value;
|
||||
return 1;
|
||||
for (const auto& entry : blendMap) {
|
||||
if (!SStrCmpI(entry.string, string)) {
|
||||
blend = entry.value;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
int32_t StringToBOOL(const char* string) {
|
||||
return StringToBOOL(string, false);
|
||||
}
|
||||
|
||||
bool StringToBOOL(const char* string, int32_t def) {
|
||||
if (!string) {
|
||||
return def;
|
||||
}
|
||||
|
||||
switch (*string) {
|
||||
case '0':
|
||||
case 'F':
|
||||
case 'N':
|
||||
case 'f':
|
||||
case 'n':
|
||||
return false;
|
||||
|
||||
case '1':
|
||||
case '2':
|
||||
case '3':
|
||||
case '4':
|
||||
case '5':
|
||||
case '6':
|
||||
case '7':
|
||||
case '8':
|
||||
case '9':
|
||||
case 'T':
|
||||
case 'Y':
|
||||
case 't':
|
||||
case 'y':
|
||||
return true;
|
||||
|
||||
default:
|
||||
if (!SStrCmpI(string, "off") || !SStrCmpI(string, "disabled")) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!SStrCmpI(string, "on") || !SStrCmpI(string, "enabled")) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return def;
|
||||
}
|
||||
}
|
||||
|
||||
bool StringToBOOL(lua_State* L, int32_t idx, int32_t def) {
|
||||
switch (lua_type(L, idx)) {
|
||||
case LUA_TNIL:
|
||||
return false;
|
||||
|
||||
case LUA_TBOOLEAN:
|
||||
return lua_toboolean(L, idx);
|
||||
|
||||
case LUA_TNUMBER:
|
||||
return lua_tonumber(L, idx) != 0;
|
||||
|
||||
case LUA_TSTRING:
|
||||
return StringToBOOL(lua_tostring(L, idx), def);
|
||||
|
||||
default:
|
||||
return def;
|
||||
}
|
||||
}
|
||||
|
||||
uint64_t StringToClickAction(const char* string) {
|
||||
if (!string || !*string) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!SStrCmpI(string, "LeftButtonDown")) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (!SStrCmpI(string, "LeftButtonUp")) {
|
||||
return 0x80000000;
|
||||
}
|
||||
|
||||
if (!SStrCmpI(string, "MiddleButtonDown")) {
|
||||
return 2;
|
||||
}
|
||||
|
||||
if (!SStrCmpI(string, "MiddleButtonUp")) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!SStrCmpI(string, "RightButtonDown")) {
|
||||
return 4;
|
||||
}
|
||||
|
||||
if (!SStrCmpI(string, "RightButtonUp")) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
// TODO remaining buttons
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int32_t StringToDrawLayer(const char* string, int32_t& layer) {
|
||||
struct LayerEntry {
|
||||
const char* string;
|
||||
int32_t layer;
|
||||
};
|
||||
|
||||
static LayerEntry layerMap[] = {
|
||||
{ "BACKGROUND", DRAWLAYER_BACKGROUND },
|
||||
{ "BORDER", DRAWLAYER_BACKGROUND_BORDER },
|
||||
{ "ARTWORK", DRAWLAYER_ARTWORK },
|
||||
{ "OVERLAY", DRAWLAYER_ARTWORK_OVERLAY },
|
||||
{ "HIGHLIGHT", DRAWLAYER_HIGHLIGHT },
|
||||
};
|
||||
|
||||
for (const auto& entry : layerMap) {
|
||||
if (!SStrCmpI(string, entry.string)) {
|
||||
layer = entry.layer;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
int32_t StringToFramePoint(const char* string, FRAMEPOINT& point) {
|
||||
struct FramePointEntry {
|
||||
FRAMEPOINT value;
|
||||
const char* string;
|
||||
FRAMEPOINT value;
|
||||
};
|
||||
|
||||
static FramePointEntry framePointMap[] = {
|
||||
{ FRAMEPOINT_BOTTOM, "BOTTOM" },
|
||||
{ FRAMEPOINT_BOTTOMLEFT, "BOTTOMLEFT" },
|
||||
{ FRAMEPOINT_BOTTOMRIGHT, "BOTTOMRIGHT" },
|
||||
{ FRAMEPOINT_CENTER, "CENTER" },
|
||||
{ FRAMEPOINT_TOP, "TOP" },
|
||||
{ FRAMEPOINT_TOPRIGHT, "TOPRIGHT" },
|
||||
{ FRAMEPOINT_TOPLEFT, "TOPLEFT" },
|
||||
{ FRAMEPOINT_LEFT, "LEFT" },
|
||||
{ FRAMEPOINT_RIGHT, "RIGHT" }
|
||||
{ "BOTTOM", FRAMEPOINT_BOTTOM },
|
||||
{ "BOTTOMLEFT", FRAMEPOINT_BOTTOMLEFT },
|
||||
{ "BOTTOMRIGHT", FRAMEPOINT_BOTTOMRIGHT },
|
||||
{ "CENTER", FRAMEPOINT_CENTER },
|
||||
{ "TOP", FRAMEPOINT_TOP },
|
||||
{ "TOPRIGHT", FRAMEPOINT_TOPRIGHT },
|
||||
{ "TOPLEFT", FRAMEPOINT_TOPLEFT },
|
||||
{ "LEFT", FRAMEPOINT_LEFT },
|
||||
{ "RIGHT", FRAMEPOINT_RIGHT },
|
||||
};
|
||||
|
||||
for (int32_t i = 0; i < std::extent<decltype(framePointMap)>::value; i++) {
|
||||
if (!SStrCmpI(framePointMap[i].string, string, 0x7FFFFFFFu)) {
|
||||
point = framePointMap[i].value;
|
||||
return 1;
|
||||
for (const auto& entry : framePointMap) {
|
||||
if (!SStrCmpI(entry.string, string)) {
|
||||
point = entry.value;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
int32_t StringToFrameStrata(const char* string, FRAME_STRATA& strata) {
|
||||
struct FrameStrataEntry {
|
||||
FRAME_STRATA value;
|
||||
const char* string;
|
||||
FRAME_STRATA value;
|
||||
};
|
||||
|
||||
// FRAME_STRATA_WORLD is hardcoded
|
||||
static FrameStrataEntry frameStrataMap[] = {
|
||||
{ FRAME_STRATA_BACKGROUND, "BACKGROUND" },
|
||||
{ FRAME_STRATA_LOW, "LOW" },
|
||||
{ FRAME_STRATA_MEDIUM, "MEDIUM" },
|
||||
{ FRAME_STRATA_HIGH, "HIGH" },
|
||||
{ FRAME_STRATA_DIALOG, "DIALOG" },
|
||||
{ FRAME_STRATA_FULLSCREEN, "FULLSCREEN" },
|
||||
{ FRAME_STRATA_FULLSCREEN_DIALOG, "FULLSCREEN_DIALOG" },
|
||||
{ FRAME_STRATA_TOOLTIP, "TOOLTIP" }
|
||||
{ "BACKGROUND", FRAME_STRATA_BACKGROUND },
|
||||
{ "LOW", FRAME_STRATA_LOW },
|
||||
{ "MEDIUM", FRAME_STRATA_MEDIUM },
|
||||
{ "HIGH", FRAME_STRATA_HIGH },
|
||||
{ "DIALOG", FRAME_STRATA_DIALOG },
|
||||
{ "FULLSCREEN", FRAME_STRATA_FULLSCREEN },
|
||||
{ "FULLSCREEN_DIALOG", FRAME_STRATA_FULLSCREEN_DIALOG },
|
||||
{ "TOOLTIP", FRAME_STRATA_TOOLTIP },
|
||||
};
|
||||
|
||||
for (int32_t i = 0; i < std::extent<decltype(frameStrataMap)>::value; i++) {
|
||||
if (!SStrCmpI(frameStrataMap[i].string, string, 0x7FFFFFFFu)) {
|
||||
strata = frameStrataMap[i].value;
|
||||
return 1;
|
||||
for (const auto& entry : frameStrataMap) {
|
||||
if (!SStrCmpI(entry.string, string)) {
|
||||
strata = entry.value;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
int32_t StringToJustify(const char* string, uint32_t& justify) {
|
||||
struct JustifyEntry {
|
||||
const char* string;
|
||||
uint32_t value;
|
||||
};
|
||||
|
||||
static JustifyEntry justifyMap[] = {
|
||||
{ "LEFT", 0x1 },
|
||||
{ "CENTER", 0x2 },
|
||||
{ "RIGHT", 0x4 },
|
||||
{ "TOP", 0x8 },
|
||||
{ "MIDDLE", 0x10 },
|
||||
{ "BOTTOM", 0x20 },
|
||||
};
|
||||
|
||||
for (const auto& entry : justifyMap) {
|
||||
if (!SStrCmpI(entry.string, string)) {
|
||||
justify = entry.value;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
int32_t StringToOrientation(const char* string, ORIENTATION& orientation) {
|
||||
struct OrientationEntry {
|
||||
ORIENTATION value;
|
||||
const char* string;
|
||||
ORIENTATION value;
|
||||
};
|
||||
|
||||
static OrientationEntry orientationMap[] = {
|
||||
{ ORIENTATION_HORIZONTAL, "HORIZONTAL" },
|
||||
{ ORIENTATION_VERTICAL, "VERTICAL" },
|
||||
{ "HORIZONTAL", ORIENTATION_HORIZONTAL },
|
||||
{ "VERTICAL", ORIENTATION_VERTICAL },
|
||||
};
|
||||
|
||||
for (auto& entry : orientationMap) {
|
||||
for (const auto& entry : orientationMap) {
|
||||
if (!SStrCmpI(entry.string, string)) {
|
||||
orientation = entry.value;
|
||||
return 1;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -5,14 +5,28 @@
|
||||
#include "ui/Types.hpp"
|
||||
#include <cstdint>
|
||||
|
||||
struct lua_State;
|
||||
|
||||
const char* LanguageProcess(const char* string);
|
||||
|
||||
int32_t StringToBlendMode(const char* string, EGxBlend& blend);
|
||||
|
||||
int32_t StringToBOOL(const char* string);
|
||||
|
||||
bool StringToBOOL(const char* string, int32_t def);
|
||||
|
||||
bool StringToBOOL(lua_State* L, int32_t idx, int32_t def);
|
||||
|
||||
uint64_t StringToClickAction(const char* string);
|
||||
|
||||
int32_t StringToDrawLayer(const char* string, int32_t& layer);
|
||||
|
||||
int32_t StringToFramePoint(const char* string, FRAMEPOINT& point);
|
||||
|
||||
int32_t StringToFrameStrata(const char* string, FRAME_STRATA& strata);
|
||||
|
||||
int32_t StringToJustify(const char* string, uint32_t& justify);
|
||||
|
||||
int32_t StringToOrientation(const char* string, ORIENTATION& orientation);
|
||||
|
||||
#endif
|
||||
|
||||
@ -3,10 +3,10 @@
|
||||
#include "gx/Coordinate.hpp"
|
||||
#include "ui/FrameScript.hpp"
|
||||
#include "ui/ScriptFunctionsShared.hpp"
|
||||
#include "ui/Util.hpp"
|
||||
#include "ui/game/CGGameUI.hpp"
|
||||
#include "ui/game/Types.hpp"
|
||||
#include "ui/simple/CSimpleTop.hpp"
|
||||
#include "util/StringTo.hpp"
|
||||
#include "util/Unimplemented.hpp"
|
||||
|
||||
namespace {
|
||||
|
||||
@ -3,12 +3,12 @@
|
||||
#include "object/Client.hpp"
|
||||
#include "ui/FrameScript.hpp"
|
||||
#include "ui/ScriptFunctionsSystem.hpp"
|
||||
#include "ui/Util.hpp"
|
||||
#include "ui/game/CGGameUI.hpp"
|
||||
#include "ui/game/ScriptUtil.hpp"
|
||||
#include "ui/game/Types.hpp"
|
||||
#include "util/GUID.hpp"
|
||||
#include "util/Lua.hpp"
|
||||
#include "util/StringTo.hpp"
|
||||
#include "util/Unimplemented.hpp"
|
||||
|
||||
#define NUM_SCRIPT_EVENTS 722
|
||||
|
||||
@ -1,11 +1,11 @@
|
||||
#include "ui/simple/CSimpleButtonScript.hpp"
|
||||
#include "gx/Coordinate.hpp"
|
||||
#include "ui/Util.hpp"
|
||||
#include "ui/simple/CSimpleButton.hpp"
|
||||
#include "ui/simple/CSimpleFont.hpp"
|
||||
#include "ui/simple/CSimpleFontString.hpp"
|
||||
#include "ui/simple/CSimpleTexture.hpp"
|
||||
#include "util/Lua.hpp"
|
||||
#include "util/StringTo.hpp"
|
||||
#include "util/Unimplemented.hpp"
|
||||
#include <cstdint>
|
||||
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
#include "ui/simple/CSimpleCheckbox.hpp"
|
||||
#include "ui/LoadXML.hpp"
|
||||
#include "ui/Util.hpp"
|
||||
#include "ui/simple/CSimpleCheckboxScript.hpp"
|
||||
#include "ui/simple/CSimpleTexture.hpp"
|
||||
#include "util/StringTo.hpp"
|
||||
#include <common/XML.hpp>
|
||||
|
||||
int32_t CSimpleCheckbox::s_metatable;
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
#include "ui/simple/CSimpleCheckboxScript.hpp"
|
||||
#include "ui/Util.hpp"
|
||||
#include "ui/simple/CSimpleCheckbox.hpp"
|
||||
#include "util/Lua.hpp"
|
||||
#include "util/StringTo.hpp"
|
||||
#include "util/Unimplemented.hpp"
|
||||
#include <cstdint>
|
||||
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
#include "gx/Coordinate.hpp"
|
||||
#include "gx/Gx.hpp"
|
||||
#include "ui/LoadXML.hpp"
|
||||
#include "ui/Util.hpp"
|
||||
#include "ui/simple/CSimpleEditBoxScript.hpp"
|
||||
#include "ui/simple/CSimpleFontString.hpp"
|
||||
#include "ui/simple/CSimpleFontedFrameFont.hpp"
|
||||
@ -10,7 +11,6 @@
|
||||
#include "util/Byte.hpp"
|
||||
#include "util/CStatus.hpp"
|
||||
#include "util/Lua.hpp"
|
||||
#include "util/StringTo.hpp"
|
||||
#include <common/XML.hpp>
|
||||
#include <storm/String.hpp>
|
||||
#include <storm/Unicode.hpp>
|
||||
|
||||
@ -4,9 +4,9 @@
|
||||
#include "ui/FrameXML.hpp"
|
||||
#include "ui/LoadXML.hpp"
|
||||
#include "ui/Types.hpp"
|
||||
#include "ui/Util.hpp"
|
||||
#include "ui/simple/CSimpleFontScript.hpp"
|
||||
#include "util/CStatus.hpp"
|
||||
#include "util/StringTo.hpp"
|
||||
#include <common/XML.hpp>
|
||||
#include <storm/String.hpp>
|
||||
|
||||
|
||||
@ -12,7 +12,6 @@
|
||||
#include "ui/simple/CSimpleFrame.hpp"
|
||||
#include "ui/simple/CSimpleTop.hpp"
|
||||
#include "util/CStatus.hpp"
|
||||
#include "util/StringTo.hpp"
|
||||
#include <common/XML.hpp>
|
||||
#include <storm/String.hpp>
|
||||
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
#include "ui/simple/CSimpleFontStringScript.hpp"
|
||||
#include "ui/Util.hpp"
|
||||
#include "ui/simple/CSimpleFont.hpp"
|
||||
#include "ui/simple/CSimpleFontString.hpp"
|
||||
#include "util/Lua.hpp"
|
||||
#include "util/StringTo.hpp"
|
||||
#include "util/Unimplemented.hpp"
|
||||
#include <cstdint>
|
||||
|
||||
|
||||
@ -8,6 +8,7 @@
|
||||
#include "ui/FrameScript_Object.hpp"
|
||||
#include "ui/FrameXML.hpp"
|
||||
#include "ui/LoadXML.hpp"
|
||||
#include "ui/Util.hpp"
|
||||
#include "ui/simple/CSimpleFontString.hpp"
|
||||
#include "ui/simple/CSimpleFrameScript.hpp"
|
||||
#include "ui/simple/CSimpleRender.hpp"
|
||||
@ -16,7 +17,6 @@
|
||||
#include "ui/simple/CSimpleTitleRegion.hpp"
|
||||
#include "ui/simple/CSimpleTop.hpp"
|
||||
#include "util/Lua.hpp"
|
||||
#include "util/StringTo.hpp"
|
||||
#include <common/XML.hpp>
|
||||
#include <storm/Error.hpp>
|
||||
#include <storm/String.hpp>
|
||||
|
||||
@ -3,12 +3,12 @@
|
||||
#include "ui/CBackdropGenerator.hpp"
|
||||
#include "ui/FrameScript.hpp"
|
||||
#include "ui/FrameXML.hpp"
|
||||
#include "ui/Util.hpp"
|
||||
#include "ui/simple/CSimpleFont.hpp"
|
||||
#include "ui/simple/CSimpleFontString.hpp"
|
||||
#include "ui/simple/CSimpleFrame.hpp"
|
||||
#include "ui/simple/CSimpleTexture.hpp"
|
||||
#include "util/Lua.hpp"
|
||||
#include "util/StringTo.hpp"
|
||||
#include "util/Unimplemented.hpp"
|
||||
#include <storm/Memory.hpp>
|
||||
#include <algorithm>
|
||||
|
||||
@ -1,11 +1,11 @@
|
||||
#include "ui/simple/CSimpleHTML.hpp"
|
||||
#include "ui/Util.hpp"
|
||||
#include "ui/simple/CSimpleFontString.hpp"
|
||||
#include "ui/simple/CSimpleFontedFrameFont.hpp"
|
||||
#include "ui/simple/CSimpleHTMLScript.hpp"
|
||||
#include "ui/simple/CSimpleTop.hpp"
|
||||
#include "util/CStatus.hpp"
|
||||
#include "util/SFile.hpp"
|
||||
#include "util/StringTo.hpp"
|
||||
#include <common/XML.hpp>
|
||||
|
||||
int32_t CSimpleHTML::s_metatable;
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
#include "ui/simple/CSimpleSlider.hpp"
|
||||
#include "math/Utils.hpp"
|
||||
#include "ui/LoadXML.hpp"
|
||||
#include "ui/Util.hpp"
|
||||
#include "ui/simple/CSimpleSliderScript.hpp"
|
||||
#include "ui/simple/CSimpleTexture.hpp"
|
||||
#include "util/Lua.hpp"
|
||||
#include "util/StringTo.hpp"
|
||||
#include <common/XML.hpp>
|
||||
#include <tempest/Math.hpp>
|
||||
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
#include "ui/simple/CSimpleStatusBar.hpp"
|
||||
#include "ui/LoadXML.hpp"
|
||||
#include "ui/Util.hpp"
|
||||
#include "ui/simple/CSimpleStatusBarScript.hpp"
|
||||
#include "ui/simple/CSimpleTexture.hpp"
|
||||
#include "util/CStatus.hpp"
|
||||
#include "util/Lua.hpp"
|
||||
#include "util/StringTo.hpp"
|
||||
#include <common/XML.hpp>
|
||||
|
||||
int32_t CSimpleStatusBar::s_metatable;
|
||||
|
||||
@ -9,7 +9,6 @@
|
||||
#include "ui/Util.hpp"
|
||||
#include "ui/simple/CSimpleFrame.hpp"
|
||||
#include "ui/simple/CSimpleTextureScript.hpp"
|
||||
#include "util/StringTo.hpp"
|
||||
#include <algorithm>
|
||||
#include <climits>
|
||||
#include <common/XML.hpp>
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
#include "ui/simple/CSimpleTextureScript.hpp"
|
||||
#include "ui/Types.hpp"
|
||||
#include "ui/Util.hpp"
|
||||
#include "ui/simple/CSimpleTexture.hpp"
|
||||
#include "util/Lua.hpp"
|
||||
#include "util/StringTo.hpp"
|
||||
#include "util/Unimplemented.hpp"
|
||||
#include <cstdint>
|
||||
|
||||
|
||||
@ -1,161 +0,0 @@
|
||||
#include "util/StringTo.hpp"
|
||||
#include "util/Lua.hpp"
|
||||
#include <storm/String.hpp>
|
||||
|
||||
uint64_t StringToClickAction(const char* actionStr) {
|
||||
if (!actionStr || !*actionStr) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!SStrCmpI(actionStr, "LeftButtonDown", STORM_MAX_STR)) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (!SStrCmpI(actionStr, "LeftButtonUp", STORM_MAX_STR)) {
|
||||
return 0x80000000;
|
||||
}
|
||||
|
||||
if (!SStrCmpI(actionStr, "MiddleButtonDown", STORM_MAX_STR)) {
|
||||
return 2;
|
||||
}
|
||||
|
||||
if (!SStrCmpI(actionStr, "MiddleButtonUp", STORM_MAX_STR)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!SStrCmpI(actionStr, "RightButtonDown", STORM_MAX_STR)) {
|
||||
return 4;
|
||||
}
|
||||
|
||||
if (!SStrCmpI(actionStr, "RightButtonUp", STORM_MAX_STR)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
// TODO remaining buttons
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int32_t StringToBOOL(const char* str) {
|
||||
return StringToBOOL(str, 0);
|
||||
}
|
||||
|
||||
bool StringToBOOL(const char* str, int32_t def) {
|
||||
if (!str) {
|
||||
return def;
|
||||
}
|
||||
|
||||
switch (*str) {
|
||||
case '0':
|
||||
case 'F':
|
||||
case 'N':
|
||||
case 'f':
|
||||
case 'n':
|
||||
return false;
|
||||
|
||||
case '1':
|
||||
case '2':
|
||||
case '3':
|
||||
case '4':
|
||||
case '5':
|
||||
case '6':
|
||||
case '7':
|
||||
case '8':
|
||||
case '9':
|
||||
case 'T':
|
||||
case 'Y':
|
||||
case 't':
|
||||
case 'y':
|
||||
return true;
|
||||
|
||||
default:
|
||||
if (!SStrCmpI(str, "off", 0x7FFFFFFFu) || !SStrCmpI(str, "disabled", 0x7FFFFFFFu)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!SStrCmpI(str, "on", 0x7FFFFFFFu) || !SStrCmpI(str, "enabled", 0x7FFFFFFFu)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return def;
|
||||
}
|
||||
}
|
||||
|
||||
bool StringToBOOL(lua_State* L, int32_t idx, int32_t def) {
|
||||
bool result;
|
||||
const char* str;
|
||||
|
||||
switch (lua_type(L, idx)) {
|
||||
case LUA_TNIL:
|
||||
result = false;
|
||||
break;
|
||||
|
||||
case LUA_TBOOLEAN:
|
||||
result = lua_toboolean(L, idx);
|
||||
break;
|
||||
|
||||
case LUA_TNUMBER:
|
||||
result = lua_tonumber(L, idx) != 0;
|
||||
break;
|
||||
|
||||
case LUA_TSTRING:
|
||||
str = lua_tostring(L, idx);
|
||||
result = StringToBOOL(str, def);
|
||||
break;
|
||||
|
||||
default:
|
||||
result = def;
|
||||
break;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
int32_t StringToDrawLayer(const char* string, int32_t& layer) {
|
||||
struct drawlayer {
|
||||
int32_t layer;
|
||||
const char* string;
|
||||
};
|
||||
|
||||
static drawlayer array_drawlayer[5] = {
|
||||
{ 0, "BACKGROUND" },
|
||||
{ 1, "BORDER" },
|
||||
{ 2, "ARTWORK" },
|
||||
{ 3, "OVERLAY" },
|
||||
{ 4, "HIGHLIGHT" }
|
||||
};
|
||||
|
||||
for (int32_t i = 0; i < 5; i++) {
|
||||
if (!SStrCmpI(array_drawlayer[i].string, string, 0x7FFFFFFFu)) {
|
||||
layer = array_drawlayer[i].layer;
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int32_t StringToJustify(const char* string, uint32_t& justify) {
|
||||
struct JustifyEntry {
|
||||
uint32_t value;
|
||||
const char* string;
|
||||
};
|
||||
|
||||
static JustifyEntry justifyMap[6] = {
|
||||
{ 0x1, "LEFT" },
|
||||
{ 0x2, "CENTER" },
|
||||
{ 0x4, "RIGHT" },
|
||||
{ 0x8, "TOP" },
|
||||
{ 0x10, "MIDDLE" },
|
||||
{ 0x20, "BOTTOM" }
|
||||
};
|
||||
|
||||
for (int32_t i = 0; i < 5; i++) {
|
||||
if (!SStrCmpI(justifyMap[i].string, string, 0x7FFFFFFFu)) {
|
||||
justify = justifyMap[i].value;
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -1,20 +0,0 @@
|
||||
#ifndef UTIL_STRING_TO_HPP
|
||||
#define UTIL_STRING_TO_HPP
|
||||
|
||||
#include <cstdint>
|
||||
|
||||
struct lua_State;
|
||||
|
||||
uint64_t StringToClickAction(const char* actionStr);
|
||||
|
||||
int32_t StringToBOOL(const char*);
|
||||
|
||||
bool StringToBOOL(const char*, int32_t);
|
||||
|
||||
bool StringToBOOL(lua_State*, int32_t, int32_t);
|
||||
|
||||
int32_t StringToDrawLayer(const char*, int32_t&);
|
||||
|
||||
int32_t StringToJustify(const char*, uint32_t&);
|
||||
|
||||
#endif
|
||||
Loading…
Reference in New Issue
Block a user