diff options
Diffstat (limited to 'pokemontools/vba')
| -rw-r--r-- | pokemontools/vba/vba.py | 33 | 
1 files changed, 17 insertions, 16 deletions
| diff --git a/pokemontools/vba/vba.py b/pokemontools/vba/vba.py index eafbaa1..a4c7e27 100644 --- a/pokemontools/vba/vba.py +++ b/pokemontools/vba/vba.py @@ -85,26 +85,27 @@ def call(bank, address, vba=vba, registers=registers):      else:          registers["pc"] = address -def get_stack(vba=vba, registers=registers): +class crystal:      """ -    Return a list of functions on the stack. +    Just a simple namespace to store a bunch of functions for Pokémon Crystal.      """ -    addresses = [] -    sp = registers.sp -    for x in range(0, 11): -        sp = sp - (2 * x) -        hi = vba.read_memory_at(sp + 1) -        lo = vba.read_memory_at(sp) -        address = ((hi << 8) | lo) -        addresses.append(address) +    @staticmethod +    def get_stack(vba=vba, registers=registers): +        """ +        Return a list of functions on the stack. +        """ +        addresses = [] +        sp = registers.sp -    return addresses +        for x in range(0, 11): +            sp = sp - (2 * x) +            hi = vba.read_memory_at(sp + 1) +            lo = vba.read_memory_at(sp) +            address = ((hi << 8) | lo) +            addresses.append(address) -class crystal: -    """ -    Just a simple namespace to store a bunch of functions for Pokémon Crystal. -    """ +        return addresses      @staticmethod      def text_wait(step_size=1, max_wait=200, sfx_limit=0, debug=False, callback=None): @@ -150,7 +151,7 @@ class crystal:                          break              else: -                stack = get_stack() +                stack = crystal.get_stack()                  # yes/no box or the name selection box                  if address in range(0xa46, 0xaaf): | 
