This commit is contained in:
Tanasart 2024-08-18 09:51:54 +07:00
parent dd0180e186
commit 388a4ccf93
6 changed files with 38 additions and 43 deletions

View file

@ -1,4 +1,3 @@
function bin_read_byte(_bin) { function bin_read_byte(_bin) {
return file_bin_read_byte(_bin); return file_bin_read_byte(_bin);
} }
@ -13,10 +12,10 @@ function bin_read_short(_bin) {
var b0 = file_bin_read_byte(_bin); var b0 = file_bin_read_byte(_bin);
var b1 = file_bin_read_byte(_bin); var b1 = file_bin_read_byte(_bin);
var short = b0 + (b1 << 8); var sht = b0 + (b1 << 8);
var sig = short >> 15; var sig = sht >> 15;
short = short & ~(1 << 15); sht = sht & ~(1 << 15);
return sig? -power(2, 15) + short : short; return sig? sht - power(2, 15) : sht;
} }
function bin_read_dword(_bin) { function bin_read_dword(_bin) {
@ -24,8 +23,8 @@ function bin_read_dword(_bin) {
var b1 = file_bin_read_byte(_bin); var b1 = file_bin_read_byte(_bin);
var b2 = file_bin_read_byte(_bin); var b2 = file_bin_read_byte(_bin);
var b3 = file_bin_read_byte(_bin); var b3 = file_bin_read_byte(_bin);
var dword = b0 + (b1 << 8) + (b2 << 16) + (b3 << 24); var dw = b0 + (b1 << 8) + (b2 << 16) + (b3 << 24);
return dword; return dw;
} }
function bin_read_long(_bin) { function bin_read_long(_bin) {
@ -33,11 +32,11 @@ function bin_read_long(_bin) {
var b1 = file_bin_read_byte(_bin); var b1 = file_bin_read_byte(_bin);
var b2 = file_bin_read_byte(_bin); var b2 = file_bin_read_byte(_bin);
var b3 = file_bin_read_byte(_bin); var b3 = file_bin_read_byte(_bin);
var long = b0 + (b1 << 8) + (b2 << 16) + (b3 << 24); var lng = b0 + (b1 << 8) + (b2 << 16) + (b3 << 24);
var sig = long >> 31; var sig = lng >> 31;
long = long & ~(1 << 31); lng = lng & ~(1 << 31);
return sig? -power(2, 31) : long; return sig? lng - power(2, 31) : lng;
} }
function bin_read_fixed(_bin) { function bin_read_fixed(_bin) {
@ -56,11 +55,11 @@ function bin_read_float(_bin) {
var b1 = file_bin_read_byte(_bin); var b1 = file_bin_read_byte(_bin);
var b2 = file_bin_read_byte(_bin); var b2 = file_bin_read_byte(_bin);
var b3 = file_bin_read_byte(_bin); var b3 = file_bin_read_byte(_bin);
var float = b0 + (b1 << 8) + (b2 << 16) + (b3 << 24); var flt = b0 + (b1 << 8) + (b2 << 16) + (b3 << 24);
var sig = float >> 31; var sig = flt >> 31;
var expo = (float & ~(1 << 31)) >> 23; var expo = (flt & ~(1 << 31)) >> 23;
var mant = float & 0b00000000_01111111_11111111_11111111; var mant = flt & 0b00000000_01111111_11111111_11111111;
var val = (1 + mant) * power(2, expo - 127); var val = (1 + mant) * power(2, expo - 127);
return sig? -val : val; return sig? -val : val;
@ -75,11 +74,11 @@ function bin_read_double(_bin) {
var b5 = file_bin_read_byte(_bin); var b5 = file_bin_read_byte(_bin);
var b6 = file_bin_read_byte(_bin); var b6 = file_bin_read_byte(_bin);
var b7 = file_bin_read_byte(_bin); var b7 = file_bin_read_byte(_bin);
var double = b0 + (b1 << 8) + (b2 << 16) + (b3 << 24) + (b2 << 32) + (b3 << 40) + (b2 << 48) + (b3 << 56); var dub = int64(b0 + (b1 << 8) + (b2 << 16) + (b3 << 24) + (b2 << 32) + (b3 << 40) + (b2 << 48) + (b3 << 56));
var sig = double >> 63; var sig = dub >> 63;
var expo = (double & ~(1 << 63)) >> 52; var expo = (dub & ~(1 << 63)) >> 52;
var mant = double & 0b00000000_00001111_11111111_11111111_11111111_11111111_11111111_11111111; var mant = dub & 0b00000000_00001111_11111111_11111111_11111111_11111111_11111111_11111111;
var val = (1 + mant) * power(2, expo - 1023); var val = (1 + mant) * power(2, expo - 1023);
return sig? -val : val; return sig? -val : val;
@ -94,7 +93,7 @@ function bin_read_qword(_bin) {
var b5 = file_bin_read_byte(_bin); var b5 = file_bin_read_byte(_bin);
var b6 = file_bin_read_byte(_bin); var b6 = file_bin_read_byte(_bin);
var b7 = file_bin_read_byte(_bin); var b7 = file_bin_read_byte(_bin);
return b0 + (b1 << 8) + (b2 << 16) + (b3 << 24) + (b2 << 32) + (b3 << 40) + (b2 << 48) + (b3 << 56); return int64(b0 + (b1 << 8) + (b2 << 16) + (b3 << 24) + (b2 << 32) + (b3 << 40) + (b2 << 48) + (b3 << 56));
} }
function bin_read_long64(_bin) { function bin_read_long64(_bin) {
@ -106,13 +105,12 @@ function bin_read_long64(_bin) {
var b5 = file_bin_read_byte(_bin); var b5 = file_bin_read_byte(_bin);
var b6 = file_bin_read_byte(_bin); var b6 = file_bin_read_byte(_bin);
var b7 = file_bin_read_byte(_bin); var b7 = file_bin_read_byte(_bin);
var long = b0 + (b1 << 8) + (b2 << 16) + (b3 << 24) + (b2 << 32) + (b3 << 40) + (b2 << 48) + (b3 << 56); var lng = int64(b0 + (b1 << 8) + (b2 << 16) + (b3 << 24) + (b2 << 32) + (b3 << 40) + (b2 << 48) + (b3 << 56));
var sig = long >> 63; var sig = lng >> 63;
long = long & ~(1 << 63); lng = lng & ~(1 << 63);
return sig? -long : long; return sig? -lng : lng;
} }
//
function bin_read_string(_bin) { function bin_read_string(_bin) {
var len = bin_read_word(_bin); var len = bin_read_word(_bin);
var ss = ""; var ss = "";

View file

@ -37,10 +37,10 @@
globalvar HOTKEYS, HOTKEY_CONTEXT; globalvar HOTKEYS, HOTKEY_CONTEXT;
LATEST_VERSION = 1_16_00_0; LATEST_VERSION = 1_16_00_0;
VERSION = 1_17_10_1; VERSION = 1_17_10_2;
SAVE_VERSION = 1_17_10_0; SAVE_VERSION = 1_17_10_0;
VERSION_STRING = "1.17.10.001"; VERSION_STRING = "1.17.10.2";
BUILD_NUMBER = 1_17_10_1; BUILD_NUMBER = 1_17_10_2;
HOTKEYS = ds_map_create(); HOTKEYS = ds_map_create();
HOTKEY_CONTEXT = ds_list_create(); HOTKEY_CONTEXT = ds_list_create();

View file

@ -1030,4 +1030,8 @@ function textArea(_input, _onModify) : textInput(_input, _onModify) constructor
return hh; return hh;
} #endregion } #endregion
static clone = function() {
var cln = new textArea(input, onModify);
return cln;
}
} }

View file

@ -819,4 +819,9 @@ function textBox(_input, _onModify) : textInput(_input, _onModify) constructor {
sprite_index = -1; sprite_index = -1;
return _h; return _h;
} #endregion } #endregion
static clone = function() {
var cln = new textBox(input, onModify);
return cln;
}
} }

View file

@ -26,15 +26,4 @@ function textInput(_input, _onModify) : widget() constructor {
static setSideButton = function(_button) /*=>*/ { self.side_button = _button; return self; } static setSideButton = function(_button) /*=>*/ { self.side_button = _button; return self; }
static breakCharacter = function(ch) /*=>*/ { return ch == " " || ch == "\n"; } static breakCharacter = function(ch) /*=>*/ { return ch == " " || ch == "\n"; }
static clone = function() {
var _onModify = onModify;
onModify = noone;
var cln = variable_clone(self);
cln.onModify = _onModify;
onModify = _onModify;
return cln;
}
} }

View file

@ -100,12 +100,11 @@ function widget() constructor {
hover = false; hover = false;
} }
static inBBOX = function(_m) { return point_in_rectangle(_m[0], _m[1], x, y, x + w, y + h); } static inBBOX = function(_m) { return point_in_rectangle(_m[0], _m[1], x, y, x + w, y + h); }
static clone = function() { return struct_clone(self); }
static clone = function() { return variable_clone(self); }
static drawParam = function(params) {} static drawParam = function(params) {}
static draw = function() {} static draw = function() {}
} }
function widgetParam(x, y, w, h, data, display_data = {}, m = mouse_ui, rx = 0, ry = 0) constructor { function widgetParam(x, y, w, h, data, display_data = {}, m = mouse_ui, rx = 0, ry = 0) constructor {