From 2f9df7133f39b286afe222f635be32c0699c87bf Mon Sep 17 00:00:00 2001 From: Bryan Bishop Date: Sat, 21 Sep 2013 19:34:46 -0500 Subject: [PATCH] move get_stack into vba.crystal --- pokemontools/vba/vba.py | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 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,27 +85,28 @@ def call(bank, address, vba=vba, registers=registers): else: registers["pc"] = address -def get_stack(vba=vba, registers=registers): - """ - Return a list of functions on the stack. - """ - 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) - - return addresses - class crystal: """ Just a simple namespace to store a bunch of functions for Pokémon Crystal. """ + @staticmethod + def get_stack(vba=vba, registers=registers): + """ + Return a list of functions on the stack. + """ + 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) + + 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):