diff options
| author | Julgodis <> | 2021-04-10 07:02:38 +0200 |
|---|---|---|
| committer | Julgodis <> | 2021-04-10 07:02:38 +0200 |
| commit | 0ad6ebe7b499ad3efffad93e2e7eb1033bcb6598 (patch) | |
| tree | a40631b0654c4d310ebff2360e2a4ef32437a2b5 /tools/libdol2asm/data/function/ret.py | |
| parent | 2661db6aaa98a5bbd17691cb438ef64752dbcdf4 (diff) | |
moved strings + decompile simple store functions
Diffstat (limited to 'tools/libdol2asm/data/function/ret.py')
| -rw-r--r-- | tools/libdol2asm/data/function/ret.py | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/tools/libdol2asm/data/function/ret.py b/tools/libdol2asm/data/function/ret.py index aed96c2315..c9ae3b8d1d 100644 --- a/tools/libdol2asm/data/function/ret.py +++ b/tools/libdol2asm/data/function/ret.py @@ -29,6 +29,8 @@ class CustomReturnFunction(ReturnFunction): class SymbolReturnFunction(ReturnFunction): symbol_addr: int = 0 load_or_reference: bool = True + load_type: Type = None + cast_type: Type = None def gather_references(self, context, valid_range): self.references = set([ self.symbol_addr ]) @@ -37,8 +39,11 @@ class SymbolReturnFunction(ReturnFunction): symbol = symbol_table[-1, self.symbol_addr] assert symbol name = symbol.cpp_reference(self, self.symbol_addr) - type = PointerType(self.return_type) + load_type = PointerType(self.load_type) dereference = "" + cast = "" if self.load_or_reference: dereference = "*" - return f"{dereference}({type.type()})({name})" + if self.cast_type: + cast = f"({self.cast_type.type()})" + return f"{cast}{dereference}({load_type.type()})({name})" |
