diff --git a/source/FIFA21.CETRAINER b/source/FIFA21.CETRAINER index a6728f3..4ec90a1 100644 --- a/source/FIFA21.CETRAINER +++ b/source/FIFA21.CETRAINER @@ -19,7 +19,7 @@ 0 - "v21.1.1.8" + "v21.1.1.9" 804000 1 diff --git a/source/lua/GUI/forms/playerseditorform/manager.lua b/source/lua/GUI/forms/playerseditorform/manager.lua index b057bfc..eee0c08 100644 --- a/source/lua/GUI/forms/playerseditorform/manager.lua +++ b/source/lua/GUI/forms/playerseditorform/manager.lua @@ -622,12 +622,12 @@ function thisFormManager:get_components_description() local fnTraitCheckbox = function(addrs, comp_desc) local field_name = comp_desc["db_field"]["field_name"] local table_name = comp_desc["db_field"]["table_name"] + local bit = comp_desc["trait_bit"] local addr = addrs[table_name] local traitbitfield = self.game_db_manager:get_table_record_field_value(addr, table_name, field_name) - - local is_set = bAnd(bShr(traitbitfield, comp_desc["trait_bit"]), 1) + local is_set = bAnd(bShr(traitbitfield, bit), 1) return is_set end diff --git a/source/lua/imports/GameDBManager.lua b/source/lua/imports/GameDBManager.lua index 641ee4e..6d5e13c 100644 --- a/source/lua/imports/GameDBManager.lua +++ b/source/lua/imports/GameDBManager.lua @@ -212,11 +212,19 @@ function GameDBManager:get_table_record_field_value(record_addr, table_name, fie local fld_type = fld_desc["fld_type"] if fld_type == "DBOFIELDTYPE_INTEGER" or fld_type == "DBOFIELDTYPE_DATE" then - local v = readInteger(record_addr + fld_desc["offset"]) + local v = readQword(record_addr + fld_desc["offset"]) local a = bShr(v, fld_desc["startbit"]) local b = bShl(1, fld_desc["depth"]) - 1 result = bAnd(a,b) + -- TODO: DElete + -- if fieldname == "trait1" or fieldname == "trait2" then + -- self.logger:info(string.format( + -- "fld: %s, addr: 0x%X+0x%X startbit: %d, depth: %d", + -- fieldname, record_addr, fld_desc["offset"], fld_desc["startbit"], fld_desc["depth"] + -- )) + -- end + if not raw then result = result + fld_desc["rangelow"] end @@ -248,7 +256,7 @@ function GameDBManager:set_table_record_field_value(record_addr, table_name, fie new_value = readInteger("magic_fldtype_real") end - local v = readInteger(addr) + local v = readQword(addr) --self.logger:debug(string.format("writeval: %d", v)) local startbit = fld_desc["startbit"] local depth = fld_desc["depth"]-1 @@ -276,7 +284,7 @@ function GameDBManager:set_table_record_field_value(record_addr, table_name, fie end --self.logger:debug(string.format("writeval: %d", v)) - writeInteger(addr, v) + writeQword(addr, v) elseif fld_type == "DBOFIELDTYPE_STRING" then local string_max_len = math.floor(fld_desc["depth"] / 8) local new_val_len = string.len(new_value)