[decomp2] game-info, game-task and task-control (#1884)

And everything else needed for them!

A couple functions are bad currently.

- fixes #1929 - untested on linux
- fixes #1924 - now you need to type `,` before a lambda you want to put
in a pair.
- fix debugger symbol table in jak 2
- made the decompiler output `(meters 2)` instead of `(meters 2.0)`
- fixed a bug with the bitfield enum special -1 case
- made bad game text decomp not exit the decompiler
- added `editable-player` and `script`
This commit is contained in:
ManDude
2022-09-28 00:44:20 +01:00
committed by GitHub
parent e3a4627eeb
commit 9351bf782e
129 changed files with 48750 additions and 6299 deletions
+2 -3
View File
@@ -668,7 +668,7 @@ void Debugger::read_symbol_table_jak2() {
str_buff[127] = '\0';
// GOAL sym - s7
auto sym_offset = s32(offset + st_base + BASIC_OFFSET) - s32(m_debug_context.s7);
auto sym_offset = s32(offset + st_base) - s32(m_debug_context.s7);
ASSERT(sym_offset >= -SYM_TABLE_MEM_SIZE / 4);
ASSERT(sym_offset < SYM_TABLE_MEM_SIZE / 4);
@@ -1100,8 +1100,7 @@ std::string Debugger::disassemble_x86_with_symbols(int len, u64 base_addr) const
pos += op_mov_string.length();
auto r14_pos = result.find(sym_false_string, pos);
if (r14_pos < result.find(op_mov_string, pos)) {
result.replace(r14_pos, sym_false_string.length(),
fmt::format(", '{}", get_symbol_name_from_offset(0)));
result.replace(r14_pos, sym_false_string.length(), fmt::format(", '#f"));
}
}