{$CLEO} const file = 0@ linebuf = 1@ eof = 2@ letter = 3@ vehSets = 4@ vehSets_f0 = 5@ vehSets_f4 = 6@ vehSets_f8 = 7@ vehSets_fC = 8@ vehsets_f10 = 9@ numRegisteredModels = 10@ SIZE_LINE = 1024 SIZE_ONE_STRUCT = 20 SIZE_VEHSETS = 10000 // 500 * 20 end 0AC8: linebuf = allocate_memory_size SIZE_LINE 0AC8: vehSets = allocate_memory_size SIZE_VEHSETS 0085: vehSets_f0 = vehSets // reading from file 0AA7: call_function 0x538900 num_params 2 pop 2 "r" "DATA\\VEHSETS.DAT" file // _fOpen 0AA7: call_function 0x5389B0 num_params 3 pop 3 SIZE_LINE linebuf file eof // _fGet numRegisteredModels = 0 if eof <> false then repeat 0A8D: letter = read_memory linebuf size 1 virtual_protect 0 if letter <> 0x23 // "#" then // scanning & storing 0A8E: vehSets_f4 = vehSets_f0 + 4 0A8E: vehSets_f8 = vehSets_f0 + 8 0A8E: vehSets_fC = vehSets_f0 + 0xC 0A8E: vehSets_f10 = vehSets_f0 + 0x10 0AA7: call_function 0x8220AD num_params 7 pop 7 vehSets_f10 vehSets_fC vehSets_f8 vehSets_f4 vehSets_f0 "%d %f %f %f %f" linebuf letter // _sscanf vehSets_f0 += SIZE_ONE_STRUCT numRegisteredModels += 1 end 0AA7: call_function 0x5389B0 num_params 3 pop 3 SIZE_LINE linebuf file eof // _fGet until eof == false end 0AA5: call 0x5389D0 num_params 1 pop 1 file // _fClose // end reading // test while true wait 0 0AB1: @get_params_for_model 3 model 87 vehSets numRegisteredModels store_to 11@ 12@ 13@ 14@ isFound_to 15@ if 15@ == true then 0AD1: show_formatted_text_highpriority "numModels: %d model: %d params: %.4f %.4f %.4f %.4f" time 100 numRegisteredModels 87 11@ 12@ 13@ 14@ else 0AD1: show_formatted_text_highpriority "numModels: %d model: %d not found" time 100 numRegisteredModels 87 end end :get_params_for_model // 0@ - modelID 1@ - vehSets buffer 2@ - max models // returns: 1 - param1, 2 - param2, 3 - param3, 4 - param4, 5 - isFound 0085: 4@ = 1@ // find model with same ID for 3@ = 1 to 2@ 0A8D: 5@ = read_memory 4@ size 4 virtual_protect 0 if 003B: 5@ == 0@ then 4@ += 4 // 0D29: get_quat 4@ elements_to 6@ 7@ 8@ 9@ 0A8D: 6@ = read_memory 4@ size 4 virtual_protect 0 4@ += 4 0A8D: 7@ = read_memory 4@ size 4 virtual_protect 0 4@ += 4 0A8D: 8@ = read_memory 4@ size 4 virtual_protect 0 4@ += 4 0A8D: 9@ = read_memory 4@ size 4 virtual_protect 0 0AB2: ret 5 6@ 7@ 8@ 9@ true end 4@ += SIZE_ONE_STRUCT end 0AB2: ret 5 0 0 0 0 false