Compare commits

..

No commits in common. "d80e2b4b4f65dd44c4a8b297f22f50150520e8f5" and "f039d4f88cd031e496835333cd5dc4b8c7764717" have entirely different histories.

9 changed files with 21 additions and 101 deletions

View File

@ -334,7 +334,7 @@ LRESULT CGxDeviceD3d::WindowProcD3d(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM
case WM_SETCURSOR: {
if (device) {
if (device->m_d3dDevice && LOWORD(lParam) == HTCLIENT) {
if (device->m_d3dDevice && lParam == 1) {
SetCursor(nullptr);
BOOL show = device->m_cursorVisible && device->m_hardwareCursor ? TRUE : FALSE;
device->m_d3dDevice->ShowCursor(show);
@ -474,7 +474,7 @@ int32_t CGxDeviceD3d::DeviceSetFormat(const CGxFormat& format) {
ShowWindow(this->m_hwnd, 0);
}
this->IDestroyD3dDevice();
// TODO
if (this->m_hwnd) {
DestroyWindow(this->m_hwnd);
@ -488,7 +488,8 @@ int32_t CGxDeviceD3d::DeviceSetFormat(const CGxFormat& format) {
if (this->ICreateWindow(createFormat) && this->ICreateD3dDevice(createFormat) && this->CGxDevice::DeviceSetFormat(format)) {
this->intF64 = 1;
this->m_hwCursorNeedsUpdate = 1;
// TODO
if (this->m_format.window == 0) {
RECT windowRect;
@ -497,14 +498,6 @@ int32_t CGxDeviceD3d::DeviceSetFormat(const CGxFormat& format) {
}
return 1;
} else {
CGxDevice::Log("CGxDeviceD3d::DeviceSetFormat(): unable to set format!");
this->IDestroyD3dDevice();
if (this->m_hwnd) {
DestroyWindow(this->m_hwnd);
}
this->m_hwnd = nullptr;
return 0;
}
}
@ -1256,11 +1249,6 @@ void CGxDeviceD3d::CursorSetVisible(int32_t visible) {
}
}
void CGxDeviceD3d::CursorUnlock(uint32_t x, uint32_t y) {
CGxDevice::CursorUnlock(x, y);
this->m_hwCursorNeedsUpdate = 1;
}
void CGxDeviceD3d::ICursorDraw() {
if (!this->m_hardwareCursor) {
this->ISceneBegin();

View File

@ -252,7 +252,6 @@ class CGxDeviceD3d : public CGxDevice {
virtual void ICursorDestroy();
virtual void ICursorDraw();
virtual void CursorSetVisible(int32_t visible);
virtual void CursorUnlock(uint32_t x, uint32_t y);
virtual int32_t DeviceCreate(int32_t (*windowProc)(void* window, uint32_t message, uintptr_t wparam, intptr_t lparam), const CGxFormat& format);
virtual int32_t DeviceSetFormat(const CGxFormat& format);
virtual void* DeviceWindow();

View File

@ -878,11 +878,6 @@ int32_t CSimpleEditBox::OnLayerKeyDown(const CKeyEvent& evt) {
return 1;
}
case KEY_TAB: {
this->RunOnTabPressedScript();
return 1;
}
// TODO
// - remaining keys
@ -1006,13 +1001,6 @@ void CSimpleEditBox::RunOnEnterPressedScript() {
}
}
void CSimpleEditBox::RunOnTabPressedScript() {
if (this->m_onTabPressed.luaRef) {
this->RunScript(this->m_onTabPressed, 0, 0);
}
// TODO: virtual call of CSimpleEditBox::DispatchAction ?
}
void CSimpleEditBox::RunOnTextChangedScript(int32_t changed) {
if (this->m_onTextChanged.luaRef) {
auto L = FrameScript_GetContext();

View File

@ -99,7 +99,6 @@ class CSimpleEditBox : public CSimpleFrame, CSimpleFontedFrame {
void RunOnEditFocusGainedScript();
void RunOnEditFocusLostScript();
void RunOnEnterPressedScript();
void RunOnTabPressedScript();
void RunOnTextChangedScript(int32_t changed);
void SetCursorPosition(int32_t position);
void SetHistoryLines(int32_t a2);

View File

@ -139,8 +139,8 @@ int32_t CSimpleFontString_SetFormattedText(lua_State* L) {
luaL_error(L, "%s:SetFormattedText(): Font not set", string->GetDisplayName());
}
char buffer[4096];
auto text = FrameScript_Sprintf(L, 2, buffer, sizeof(buffer));
char buffer[4096] = {};
char* text = FrameScript_Sprintf(L, 2, buffer, sizeof(buffer));
string->SetText(text, 1);
return 0;
}

View File

@ -2,7 +2,6 @@
#include "ui/FrameScriptInternal.hpp"
#include "ui/FrameScript_Object.hpp"
#include "ui/LuaMemory.hpp"
#include "ui/LuaExtraFuncs.hpp"
#include "util/CStatus.hpp"
#include "util/Lua.hpp"
#include "util/SFile.hpp"
@ -452,24 +451,26 @@ void FrameScript_GetColor(lua_State* L, int32_t idx, CImVector& color) {
color.Set(a, r, g, b);
}
int32_t SetDecimalConversion(int32_t enabled) {
return lua_setdecimalconversion(enabled);
}
lua_State* FrameScript_GetContext(void) {
return FrameScript::s_context;
}
const char* FrameScript_Sprintf(lua_State* L, int32_t idx, char* buffer, uint32_t size) {
char* FrameScript_Sprintf(lua_State* L, int32_t idx, char* buffer, uint32_t size) {
size_t formatLength = 0;
const char* format = luaL_checklstring(L, idx, &formatLength);
const char* formatEnd = format + formatLength;
char* result = buffer;
if (format >= formatEnd) {
*buffer = '\0';
return result;
}
int32_t currentIndex = idx;
while (format < formatEnd && size > 1) {
while (size > 1) {
char character = *format++;
if (character == '%') {
char argument = *format;
@ -551,7 +552,7 @@ const char* FrameScript_Sprintf(lua_State* L, int32_t idx, char* buffer, uint32_
double number = luaL_checknumber(L, currentIndex);
size_t length = SStrPrintf(buffer, size, subformat, number);
if (length > 0) {
lua_convertdecimal(buffer);
// TODO: lua_convertdecimal(buffer)
buffer += length;
size -= length;
}
@ -583,7 +584,7 @@ const char* FrameScript_Sprintf(lua_State* L, int32_t idx, char* buffer, uint32_
auto number = static_cast<int32_t>(luaL_checknumber(L, currentIndex));
size_t length = SStrPrintf(buffer, size, subformat, number);
if (length > 0) {
lua_convertdecimal(buffer);
// TODO: lua_convertdecimal(buffer)
buffer += length;
size -= length;
}
@ -611,6 +612,10 @@ const char* FrameScript_Sprintf(lua_State* L, int32_t idx, char* buffer, uint32_
*buffer++ = character;
--size;
}
if (format >= formatEnd) {
break;
}
}
*buffer = '\0';

View File

@ -78,11 +78,9 @@ void FrameScript_Flush();
void FrameScript_GetColor(lua_State* L, int32_t idx, CImVector& color);
int32_t SetDecimalConversion(int32_t enabled);
lua_State* FrameScript_GetContext();
const char* FrameScript_Sprintf(lua_State * L, int32_t idx, char* buffer, uint32_t size);
char* FrameScript_Sprintf(lua_State * L, int32_t idx, char* buffer, uint32_t size);
const char* FrameScript_GetCurrentObject(lua_State* L, int32_t a2);

View File

@ -5,10 +5,6 @@
#include "util/Unimplemented.hpp"
#include <cstdint>
static bool s_luaDecimalConversion = false;
luaL_Reg FrameScriptInternal::extra_funcs[31] = {
{ "setglobal", &sub_8168D0 },
{ "getglobal", &sub_816910 },
@ -173,53 +169,3 @@ int32_t debuglocals(lua_State* L) {
int32_t scrub(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
int32_t lua_setdecimalconversion(int32_t enabled) {
s_luaDecimalConversion = (enabled != 0);
return static_cast<int32_t>(s_luaDecimalConversion);
}
void lua_convertdecimal(char* string) {
if (!s_luaDecimalConversion) {
return;
}
size_t length = SStrLen(string);
if (!length) {
return;
}
char* end = &string[length];
while (string < end) {
if (*string < '0' || *string > '9') {
++string;
continue;
}
char ch;
while (true) {
ch = *string;
if ((ch < '0' || ch > '9') && ch != '.') {
break;
}
if (ch == ',') {
LABEL_13:
if (string[1] >= '0' && string[1] <= '9') {
*string = '.';
}
} else {
if (ch == '.' && (string[1] < '0' || string[1] > '9')) {
*string = ',';
}
}
++string;
}
if (ch == ',') {
goto LABEL_13;
}
++string;
}
}

View File

@ -36,7 +36,4 @@ int32_t debugstack(lua_State*);
int32_t debuglocals(lua_State*);
int32_t scrub(lua_State*);
int32_t lua_setdecimalconversion(int32_t enabled);
void lua_convertdecimal(char* string);
#endif