added move_player macro and updated script extractor

This commit is contained in:
Andrew 2020-12-14 00:46:55 -05:00
parent d8f98d97bc
commit 58f1990415
3 changed files with 265 additions and 230 deletions

View File

@ -3234,9 +3234,7 @@ Script_DrMason: ; d727 (3:5727)
Script_EnterLabFirstTime: ; d753 (3:5753)
start_script
run_command ScriptCommand_MovePlayer
db NORTH
db $02
move_player NORTH, 2
run_command ScriptCommand_MovePlayer
db NORTH
db $02

View File

@ -4,117 +4,116 @@ run_command: MACRO
db \1_index
ENDM
; TODO: create macros for overworld scripts after their usage and arguments are figured out.
; For example (current ScriptCommand_GiveBoosterPacks_index):
; const SCRIPT_GIVE_BOOSTER_PACKS ; $0c
;give_booster_packs: MACRO
; db SCRIPT_GIVE_BOOSTER_PACKS
; db \1, \2, \3
;ENDM
const_def
const ScriptCommand_EndScriptLoop1_index ; $00
const ScriptCommand_CloseAdvancedTextBox_index ; $01
const ScriptCommand_PrintTextString_index ; $02
const Func_ccdc_index ; $03
const ScriptCommand_AskQuestionJump_index ; $04
const ScriptCommand_StartBattle_index ; $05
const ScriptCommand_PrintVariableText_index ; $06
const Func_cda8_index ; $07
const ScriptCommand_PrintTextQuitFully_index ; $08
const Func_cdcb_index ; $09
const ScriptCommand_MoveActiveNPCByDirection_index ; $0a
const ScriptCommand_CloseTextBox_index ; $0b
const ScriptCommand_GiveBoosterPacks_index ; $0c
const ScriptCommand_CheckIfCardInCollectionOrDecks_index ; $0d
const ScriptCommand_CheckIfCardInCollection_index ; $0e
const ScriptCommand_GiveCard_index ; $0f
const ScriptCommand_TakeCard_index ; $10
const Func_cf53_index ; $11
const Func_cf7b_index ; $12
const ScriptCommand_CheckRawAmountOfCardsOwned_index ; $13
const ScriptCommand_JumpBasedOnFightingClubPupilStatus_index ; $14
const Func_cfc6_index ; $15
const Func_cfd4_index ; $16
const Func_d00b_index ; $17
const Func_d025_index ; $18
const Func_d032_index ; $19
const Func_d03f_index ; $1a
const ScriptCommand_Jump_index ; $1b
const ScriptCommand_TryGiveMedalPCPacks_index ; $1c
const ScriptCommand_SetPlayerDirection_index ; $1d
const ScriptCommand_MovePlayer_index ; $1e
const ScriptCommand_ShowCardReceivedScreen_index ; $1f
const ScriptCommand_SetDialogName_index ; $20
const ScriptCommand_SetNextNPCandScript_index ; $21
const Func_d095_index ; $22
const Func_d0be_index ; $23
const ScriptCommand_DoFrames_index ; $24
const Func_d0d9_index ; $25
const ScriptCommand_JumpIfPlayerCoordMatches_index ; $26
const ScriptCommand_MoveActiveNPC_index ; $27
const ScriptCommand_GiveOneOfEachTrainerBooster_index ; $28
const Func_d103_index ; $29
const Func_d125_index ; $2a
const Func_d135_index ; $2b
const Func_d16b_index ; $2c
const Func_cd4f_index ; $2d
const Func_cd94_index ; $2e
const ScriptCommand_MoveWramNPC_index ; $2f
const Func_cdd8_index ; $30
const Func_cdf5_index ; $31
const Func_d195_index ; $32
const Func_d1ad_index ; $33
const Func_d1b3_index ; $34
const ScriptCommand_QuitScriptFully_index ; $35
const Func_d244_index ; $36
const Func_d24c_index ; $37
const ScriptCommand_OpenDeckMachine_index ; $38
const Func_d271_index ; $39
const ScriptCommand_EnterMap_index ; $3a
const ScriptCommand_EndScriptLoop1_index ; $00
const ScriptCommand_CloseAdvancedTextBox_index ; $01
const ScriptCommand_PrintTextString_index ; $02
const Func_ccdc_index ; $03
const ScriptCommand_AskQuestionJump_index ; $04
const ScriptCommand_StartBattle_index ; $05
const ScriptCommand_PrintVariableText_index ; $06
const Func_cda8_index ; $07
const ScriptCommand_PrintTextQuitFully_index ; $08
const Func_cdcb_index ; $09
const ScriptCommand_MoveActiveNPCByDirection_index ; $0a
const ScriptCommand_CloseTextBox_index ; $0b
const ScriptCommand_GiveBoosterPacks_index ; $0c
const ScriptCommand_CheckIfCardInCollectionOrDecks_index ; $0d
const ScriptCommand_CheckIfCardInCollection_index ; $0e
const ScriptCommand_GiveCard_index ; $0f
const ScriptCommand_TakeCard_index ; $10
const Func_cf53_index ; $11
const Func_cf7b_index ; $12
const ScriptCommand_CheckRawAmountOfCardsOwned_index ; $13
const ScriptCommand_JumpBasedOnFightingClubPupilStatus_index ; $14
const Func_cfc6_index ; $15
const Func_cfd4_index ; $16
const Func_d00b_index ; $17
const Func_d025_index ; $18
const Func_d032_index ; $19
const Func_d03f_index ; $1a
const ScriptCommand_Jump_index ; $1b
const ScriptCommand_TryGiveMedalPCPacks_index ; $1c
const ScriptCommand_SetPlayerDirection_index ; $1d
const ScriptCommand_MovePlayer_index ; $1e
const ScriptCommand_ShowCardReceivedScreen_index ; $1f
const ScriptCommand_SetDialogName_index ; $20
const ScriptCommand_SetNextNPCandScript_index ; $21
const Func_d095_index ; $22
const Func_d0be_index ; $23
const ScriptCommand_DoFrames_index ; $24
const Func_d0d9_index ; $25
const ScriptCommand_JumpIfPlayerCoordMatches_index ; $26
const ScriptCommand_MoveActiveNPC_index ; $27
const ScriptCommand_GiveOneOfEachTrainerBooster_index ; $28
const Func_d103_index ; $29
const Func_d125_index ; $2a
const Func_d135_index ; $2b
const Func_d16b_index ; $2c
const Func_cd4f_index ; $2d
const Func_cd94_index ; $2e
const ScriptCommand_MoveWramNPC_index ; $2f
const Func_cdd8_index ; $30
const Func_cdf5_index ; $31
const Func_d195_index ; $32
const Func_d1ad_index ; $33
const Func_d1b3_index ; $34
const ScriptCommand_QuitScriptFully_index ; $35
const Func_d244_index ; $36
const Func_d24c_index ; $37
const ScriptCommand_OpenDeckMachine_index ; $38
const Func_d271_index ; $39
const ScriptCommand_EnterMap_index ; $3a
const ScriptCommand_MoveArbitraryNPC_index ; $3b
const Func_d209_index ; $3c
const Func_d38f_index ; $3d
const Func_d396_index ; $3e
const Func_cd76_index ; $3f
const Func_d39d_index ; $40
const Func_d3b9_index ; $41
const ScriptCommand_TryGivePCPack_index ; $42
const ScriptCommand_nop_index ; $43
const Func_d3d4_index ; $44
const Func_d3e0_index ; $45
const Func_d3fe_index ; $46
const Func_d408_index ; $47
const Func_d40f_index ; $48
const ScriptCommand_PlaySFX_index ; $49
const ScriptCommand_PauseSong_index ; $4a
const ScriptCommand_ResumeSong_index ; $4b
const Func_d41d_index ; $4c
const ScriptCommand_WaitForSongToFinish_index ; $4d
const Func_d435_index ; $4e
const ScriptCommand_AskQuestionJumpDefaultYes_index ; $4f
const Func_d2f6_index ; $50
const Func_d317_index ; $51
const Func_d43d_index ; $52
const ScriptCommand_EndScriptLoop2_index ; $53
const ScriptCommand_EndScriptLoop3_index ; $54
const ScriptCommand_EndScriptLoop4_index ; $55
const ScriptCommand_EndScriptLoop5_index ; $56
const ScriptCommand_EndScriptLoop6_index ; $57
const ScriptCommand_SetFlagValue_index ; $58
const ScriptCommand_JumpIfFlagZero1_index ; $59
const ScriptCommand_JumpIfFlagNonzero1_index ; $5a
const ScriptCommand_JumpIfFlagEqual_index ; $5b
const ScriptCommand_JumpIfFlagNotEqual_index ; $5c
const ScriptCommand_JumpIfFlagNotLessThan_index ; $5d
const ScriptCommand_JumpIfFlagLessThan_index ; $5e
const ScriptCommand_MaxOutFlagValue_index ; $5f
const ScriptCommand_ZeroOutFlagValue_index ; $60
const ScriptCommand_JumpIfFlagNonzero2_index ; $61
const ScriptCommand_JumpIfFlagZero2_index ; $62
const ScriptCommand_IncrementFlagValue_index ; $63
const ScriptCommand_EndScriptLoop7_index ; $64
const ScriptCommand_EndScriptLoop8_index ; $65
const ScriptCommand_EndScriptLoop9_index ; $66
const ScriptCommand_EndScriptLoop10_index ; $67
const Func_d209_index ; $3c
const Func_d38f_index ; $3d
const Func_d396_index ; $3e
const Func_cd76_index ; $3f
const Func_d39d_index ; $40
const Func_d3b9_index ; $41
const ScriptCommand_TryGivePCPack_index ; $42
const ScriptCommand_nop_index ; $43
const Func_d3d4_index ; $44
const Func_d3e0_index ; $45
const Func_d3fe_index ; $46
const Func_d408_index ; $47
const Func_d40f_index ; $48
const ScriptCommand_PlaySFX_index ; $49
const ScriptCommand_PauseSong_index ; $4a
const ScriptCommand_ResumeSong_index ; $4b
const Func_d41d_index ; $4c
const ScriptCommand_WaitForSongToFinish_index ; $4d
const Func_d435_index ; $4e
const ScriptCommand_AskQuestionJumpDefaultYes_index ; $4f
const Func_d2f6_index ; $50
const Func_d317_index ; $51
const Func_d43d_index ; $52
const ScriptCommand_EndScriptLoop2_index ; $53
const ScriptCommand_EndScriptLoop3_index ; $54
const ScriptCommand_EndScriptLoop4_index ; $55
const ScriptCommand_EndScriptLoop5_index ; $56
const ScriptCommand_EndScriptLoop6_index ; $57
const ScriptCommand_SetFlagValue_index ; $58
const ScriptCommand_JumpIfFlagZero1_index ; $59
const ScriptCommand_JumpIfFlagNonzero1_index ; $5a
const ScriptCommand_JumpIfFlagEqual_index ; $5b
const ScriptCommand_JumpIfFlagNotEqual_index ; $5c
const ScriptCommand_JumpIfFlagNotLessThan_index ; $5d
const ScriptCommand_JumpIfFlagLessThan_index ; $5e
const ScriptCommand_MaxOutFlagValue_index ; $5f
const ScriptCommand_ZeroOutFlagValue_index ; $60
const ScriptCommand_JumpIfFlagNonzero2_index ; $61
const ScriptCommand_JumpIfFlagZero2_index ; $62
const ScriptCommand_IncrementFlagValue_index ; $63
const ScriptCommand_EndScriptLoop7_index ; $64
const ScriptCommand_EndScriptLoop8_index ; $65
const ScriptCommand_EndScriptLoop9_index ; $66
const ScriptCommand_EndScriptLoop10_index ; $67
; Script Macros
move_player: MACRO
run_command ScriptCommand_MovePlayer
db \1
db \2
ENDM

View File

@ -55,43 +55,78 @@ def extractMovement(game_data, loc, errQuit):
def decodeLine(scriptList, game_data, loc, ignore_broken, locList):
currLine = scriptList[game_data[loc]]
ret = "\trun_command " + currLine[0] + "\n"
macroMode = False
if currLine[3] != "": # this seems like a bad way to handle macros, but the least bad I wanna do rn
macroMode = True
ret = "\t" + currLine[3] + " "
else:
ret = "\trun_command " + currLine[0] + "\n"
loc+=1
quit = currLine[2]
for c in currLine[1]:
if c == "b":
ret += "\tdb $" + format(game_data[loc],"02x") + "\n"
if macroMode:
ret += "$" + format(game_data[loc],"02x") + ", "
else:
ret += "\tdb $" + format(game_data[loc],"02x") + "\n"
loc += 1
elif c == "i":
ret += "\tdb " + str(game_data[loc]) + "\n"
if macroMode:
ret += str(game_data[loc]) + ", "
else:
ret += "\tdb " + str(game_data[loc]) + "\n"
loc += 1
elif c == "w":
ret += "\tdw $" + format((game_data[loc] + (game_data[loc+1]<<8)),"04x") + "\n"
if macroMode:
ret += "$" + format((game_data[loc] + (game_data[loc+1]<<8)),"04x") + ", "
else:
ret += "\tdw $" + format((game_data[loc] + (game_data[loc+1]<<8)),"04x") + "\n"
loc += 2
elif c == "j":
wordLoc = (game_data[loc] + (game_data[loc+1]<<8))
if wordLoc == 0000:
ret += "\tdw NO_JUMP\n"
if macroMode:
ret += "NO_JUMP, "
else:
ret += "\tdw NO_JUMP\n"
else:
ret += "\tdw .ows_" + format(wordLoc+0x8000,"04x") + "\n"
if macroMode:
ret += ".ows_" + format(wordLoc+0x8000,"04x") + ", "
else:
ret += "\tdw .ows_" + format(wordLoc+0x8000,"04x") + "\n"
locList.append(wordLoc)
loc += 2
elif c == "t":
addr = (game_data[loc] + (game_data[loc+1]<<8))
if addr == 0:
ret += "\tdw $0000\n"
if macroMode:
ret += "$0000, "
else:
ret += "\tdw $0000\n"
else:
ret += "\ttx Text" + format(addr,"04x") + "\n"
if macroMode:
ret += "Text" + format(addr,"04x") + ", "
else:
ret += "\ttx Text" + format(addr,"04x") + "\n"
loc += 2
elif c == "f":
ret += "\tdb EVENT_FLAG_" + format(game_data[loc],"02X") + "\n"
if macroMode:
ret += "EVENT_FLAG_" + format(game_data[loc],"02X") + ", "
else:
ret += "\tdb EVENT_FLAG_" + format(game_data[loc],"02X") + "\n"
loc += 1
elif c == "d":
ret += "\tdb " + dir_list[game_data[loc]] + "\n"
if macroMode:
ret += dir_list[game_data[loc]] + ", "
else:
ret += "\tdb " + dir_list[game_data[loc]] + "\n"
loc += 1
elif c == "m":
wordLoc = (game_data[loc] + (game_data[loc+1]<<8))
ret += "\tdw NPCMovement_" + format(wordLoc + 0x8000, "04x") + "\n"
if macroMode:
ret += "NPCMovement_" + format(wordLoc + 0x8000, "04x") + ", "
else:
ret += "\tdw NPCMovement_" + format(wordLoc + 0x8000, "04x") + "\n"
loc += 2
elif c == "q":
print("haven't updated data for this yet")
@ -99,6 +134,9 @@ def decodeLine(scriptList, game_data, loc, ignore_broken, locList):
quit = QUIT_DEBUG
else:
print("UNACCEPTED CHARACTER: " + c)
# if in macro mode, remove the extra `, ` from the end
if macroMode:
ret = ret[:-1]
return (loc, ret, quit)
def main():
@ -175,110 +213,110 @@ def printScript(game_data, loc, auto, ignore_broken, scriptList, \
def createList(): # this is a func just so all this can go at the bottom
# name, arg list, is an ender
return [
("ScriptCommand_EndScriptLoop1", "", QUIT_CONTINUE_CODE),
("ScriptCommand_CloseAdvancedTextBox", "", DO_NOT_QUIT),
("ScriptCommand_PrintTextString", "t", DO_NOT_QUIT),
("Func_ccdc", "t", DO_NOT_QUIT),
("ScriptCommand_AskQuestionJump", "tj", DO_NOT_QUIT), # more complex behavior too (jumping)
("ScriptCommand_StartBattle", "bbb", DO_NOT_QUIT),
("ScriptCommand_PrintVariableText", "tt", DO_NOT_QUIT),
("Func_cda8", "bbbb", DO_NOT_QUIT),
("ScriptCommand_PrintTextQuitFully", "t", QUIT_SPECIAL),
("Func_cdcb", "", DO_NOT_QUIT),
("ScriptCommand_MoveActiveNPCByDirection", "w", DO_NOT_QUIT),
("ScriptCommand_CloseTextBox", "", DO_NOT_QUIT),
("ScriptCommand_GiveBoosterPacks", "bbb", DO_NOT_QUIT),
("ScriptCommand_CheckIfCardInCollectionOrDecks", "bj", DO_NOT_QUIT), # more complex behavior too (jumping)
("ScriptCommand_CheckIfCardInCollection", "bj", DO_NOT_QUIT),
("ScriptCommand_GiveCard", "b", DO_NOT_QUIT),
("ScriptCommand_TakeCard", "b", DO_NOT_QUIT),
("Func_cf53", "w", DO_NOT_QUIT), # more complex behavior too (jumping)
("Func_cf7b", "", DO_NOT_QUIT),
("ScriptCommand_CheckRawAmountOfCardsOwned", "bbbb", DO_NOT_QUIT), # more complex behavior too (jumping + ??)
("ScriptCommand_JumpBasedOnFightingClubPupilStatus", "w", DO_NOT_QUIT), # only jumps? still needs args to do that though
("Func_cfc6", "b", DO_NOT_QUIT),
("Func_cfd4", "", DO_NOT_QUIT),
("Func_d00b", "", DO_NOT_QUIT), # includes something with random and extra data
("Func_d025", "w", DO_NOT_QUIT), # possibly only jumps, still needs args
("Func_d032", "w", DO_NOT_QUIT), # see above
("Func_d03f", "", DO_NOT_QUIT),
("ScriptCommand_Jump", "j", QUIT_JUMP), # jumps to d
("ScriptCommand_TryGiveMedalPCPacks", "", DO_NOT_QUIT),
("ScriptCommand_SetPlayerDirection", "d", DO_NOT_QUIT),
("ScriptCommand_MovePlayer", "db", DO_NOT_QUIT),
("ScriptCommand_ShowCardReceivedScreen", "b", DO_NOT_QUIT),
("ScriptCommand_SetDialogName", "b", DO_NOT_QUIT),
("ScriptCommand_SetNextNPCandScript", "bj", DO_NOT_QUIT),
("Func_d095", "bbb", DO_NOT_QUIT),
("Func_d0be", "bb", DO_NOT_QUIT),
("ScriptCommand_DoFrames", "i", DO_NOT_QUIT),
("Func_d0d9", "bbw", DO_NOT_QUIT), # jumps but still needs args
("ScriptCommand_JumpIfPlayerCoordMatches", "iij", DO_NOT_QUIT), # jumps but still needs args
("ScriptCommand_MoveActiveNPC", "m", DO_NOT_QUIT),
("ScriptCommand_GiveOneOfEachTrainerBooster", "", DO_NOT_QUIT),
("Func_d103", "q", DO_NOT_QUIT),
("Func_d125", "b", DO_NOT_QUIT),
("Func_d135", "b", DO_NOT_QUIT),
("Func_d16b", "b", DO_NOT_QUIT),
("Func_cd4f", "bbb", DO_NOT_QUIT),
("Func_cd94", "q", DO_NOT_QUIT),
("ScriptCommand_MoveWramNPC", "m", DO_NOT_QUIT),
("Func_cdd8", "", DO_NOT_QUIT),
("Func_cdf5", "bb", DO_NOT_QUIT),
("Func_d195", "", DO_NOT_QUIT),
("Func_d1ad", "", DO_NOT_QUIT),
("Func_d1b3", "", DO_NOT_QUIT),
("ScriptCommand_QuitScriptFully", "", QUIT_SPECIAL),
("Func_d244", "q", DO_NOT_QUIT),
("Func_d24c", "q", DO_NOT_QUIT),
("ScriptCommand_OpenDeckMachine", "b", DO_NOT_QUIT),
("Func_d271", "q", DO_NOT_QUIT),
("ScriptCommand_EnterMap", "bbood", DO_NOT_QUIT),
("ScriptCommand_MoveArbitraryNPC", "bm", DO_NOT_QUIT),
("Func_d209", "", DO_NOT_QUIT),
("Func_d38f", "b", DO_NOT_QUIT),
("Func_d396", "b", DO_NOT_QUIT),
("Func_cd76", "", DO_NOT_QUIT),
("Func_d39d", "b", DO_NOT_QUIT),
("Func_d3b9", "", DO_NOT_QUIT),
("ScriptCommand_TryGivePCPack", "b", DO_NOT_QUIT),
("ScriptCommand_nop", "", DO_NOT_QUIT),
("Func_d3d4", "q", DO_NOT_QUIT),
("Func_d3e0", "", DO_NOT_QUIT),
("Func_d3fe", "q", DO_NOT_QUIT),
("Func_d408", "b", DO_NOT_QUIT),
("Func_d40f", "q", DO_NOT_QUIT),
("ScriptCommand_PlaySFX", "b", DO_NOT_QUIT),
("ScriptCommand_PauseSong", "q", DO_NOT_QUIT),
("ScriptCommand_ResumeSong", "q", DO_NOT_QUIT),
("Func_d41d", "", DO_NOT_QUIT),
("ScriptCommand_WaitForSongToFinish", "q", DO_NOT_QUIT),
("Func_d435", "b", DO_NOT_QUIT),
("ScriptCommand_AskQuestionJumpDefaultYes", "tj", DO_NOT_QUIT),
("Func_d2f6", "q", DO_NOT_QUIT),
("Func_d317", "", DO_NOT_QUIT),
("Func_d43d", "", DO_NOT_QUIT),
("ScriptCommand_EndScriptLoop2", "q", QUIT_CONTINUE_CODE),
("ScriptCommand_EndScriptLoop3", "q", QUIT_CONTINUE_CODE),
("ScriptCommand_EndScriptLoop4", "q", QUIT_CONTINUE_CODE),
("ScriptCommand_EndScriptLoop5", "q", QUIT_CONTINUE_CODE),
("ScriptCommand_EndScriptLoop6", "q", QUIT_CONTINUE_CODE),
("ScriptCommand_SetFlagValue", "fb", DO_NOT_QUIT),
("ScriptCommand_JumpIfFlagZero1", "fj", DO_NOT_QUIT),
("ScriptCommand_JumpIfFlagNonzero1", "q", DO_NOT_QUIT),
("ScriptCommand_JumpIfFlagEqual", "fbj", DO_NOT_QUIT), # also capable of jumping
("ScriptCommand_JumpIfFlagNotEqual", "fbj", DO_NOT_QUIT), # jumps
("ScriptCommand_JumpIfFlagNotLessThan", "fbj", DO_NOT_QUIT),
("ScriptCommand_JumpIfFlagLessThan", "fbj", DO_NOT_QUIT),
("ScriptCommand_MaxOutFlagValue", "f", DO_NOT_QUIT),
("ScriptCommand_ZeroOutFlagValue", "f", DO_NOT_QUIT),
("ScriptCommand_JumpIfFlagNonzero2", "fj", DO_NOT_QUIT),
("ScriptCommand_JumpIfFlagZero2", "fj", DO_NOT_QUIT),
("ScriptCommand_IncrementFlagValue", "f", DO_NOT_QUIT),
("ScriptCommand_EndScriptLoop7", "q", QUIT_CONTINUE_CODE),
("ScriptCommand_EndScriptLoop8", "q", QUIT_CONTINUE_CODE),
("ScriptCommand_EndScriptLoop9", "q", QUIT_CONTINUE_CODE),
("ScriptCommand_EndScriptLoop10", "q", QUIT_CONTINUE_CODE)
("ScriptCommand_EndScriptLoop1", "", QUIT_CONTINUE_CODE,""),
("ScriptCommand_CloseAdvancedTextBox", "", DO_NOT_QUIT,""),
("ScriptCommand_PrintTextString", "t", DO_NOT_QUIT,""),
("Func_ccdc", "t", DO_NOT_QUIT,""),
("ScriptCommand_AskQuestionJump", "tj", DO_NOT_QUIT,""), # more complex behavior too (jumping)
("ScriptCommand_StartBattle", "bbb", DO_NOT_QUIT,""),
("ScriptCommand_PrintVariableText", "tt", DO_NOT_QUIT,""),
("Func_cda8", "bbbb", DO_NOT_QUIT,""),
("ScriptCommand_PrintTextQuitFully", "t", QUIT_SPECIAL,""),
("Func_cdcb", "", DO_NOT_QUIT,""),
("ScriptCommand_MoveActiveNPCByDirection", "w", DO_NOT_QUIT,""),
("ScriptCommand_CloseTextBox", "", DO_NOT_QUIT,""),
("ScriptCommand_GiveBoosterPacks", "bbb", DO_NOT_QUIT,""),
("ScriptCommand_CheckIfCardInCollectionOrDecks", "bj", DO_NOT_QUIT,""), # more complex behavior too (jumping)
("ScriptCommand_CheckIfCardInCollection", "bj", DO_NOT_QUIT,""),
("ScriptCommand_GiveCard", "b", DO_NOT_QUIT,""),
("ScriptCommand_TakeCard", "b", DO_NOT_QUIT,""),
("Func_cf53", "w", DO_NOT_QUIT,""), # more complex behavior too (jumping)
("Func_cf7b", "", DO_NOT_QUIT,""),
("ScriptCommand_CheckRawAmountOfCardsOwned", "bbbb", DO_NOT_QUIT,""), # more complex behavior too (jumping + ??)
("ScriptCommand_JumpBasedOnFightingClubPupilStatus", "w", DO_NOT_QUIT,""), # only jumps? still needs args to do that though
("Func_cfc6", "b", DO_NOT_QUIT,""),
("Func_cfd4", "", DO_NOT_QUIT,""),
("Func_d00b", "", DO_NOT_QUIT,""), # includes something with random and extra data
("Func_d025", "w", DO_NOT_QUIT,""), # possibly only jumps, still needs args
("Func_d032", "w", DO_NOT_QUIT,""), # see above
("Func_d03f", "", DO_NOT_QUIT,""),
("ScriptCommand_Jump", "j", QUIT_JUMP,""), # jumps to d
("ScriptCommand_TryGiveMedalPCPacks", "", DO_NOT_QUIT,""),
("ScriptCommand_SetPlayerDirection", "d", DO_NOT_QUIT,""),
("ScriptCommand_MovePlayer", "di", DO_NOT_QUIT,"move_player"),
("ScriptCommand_ShowCardReceivedScreen", "b", DO_NOT_QUIT,""),
("ScriptCommand_SetDialogName", "b", DO_NOT_QUIT,""),
("ScriptCommand_SetNextNPCandScript", "bj", DO_NOT_QUIT,""),
("Func_d095", "bbb", DO_NOT_QUIT,""),
("Func_d0be", "bb", DO_NOT_QUIT,""),
("ScriptCommand_DoFrames", "i", DO_NOT_QUIT,""),
("Func_d0d9", "bbw", DO_NOT_QUIT,""), # jumps but still needs args
("ScriptCommand_JumpIfPlayerCoordMatches", "iij", DO_NOT_QUIT,""), # jumps but still needs args
("ScriptCommand_MoveActiveNPC", "m", DO_NOT_QUIT,""),
("ScriptCommand_GiveOneOfEachTrainerBooster", "", DO_NOT_QUIT,""),
("Func_d103", "q", DO_NOT_QUIT,""),
("Func_d125", "b", DO_NOT_QUIT,""),
("Func_d135", "b", DO_NOT_QUIT,""),
("Func_d16b", "b", DO_NOT_QUIT,""),
("Func_cd4f", "bbb", DO_NOT_QUIT,""),
("Func_cd94", "q", DO_NOT_QUIT,""),
("ScriptCommand_MoveWramNPC", "m", DO_NOT_QUIT,""),
("Func_cdd8", "", DO_NOT_QUIT,""),
("Func_cdf5", "bb", DO_NOT_QUIT,""),
("Func_d195", "", DO_NOT_QUIT,""),
("Func_d1ad", "", DO_NOT_QUIT,""),
("Func_d1b3", "", DO_NOT_QUIT,""),
("ScriptCommand_QuitScriptFully", "", QUIT_SPECIAL,""),
("Func_d244", "q", DO_NOT_QUIT,""),
("Func_d24c", "q", DO_NOT_QUIT,""),
("ScriptCommand_OpenDeckMachine", "b", DO_NOT_QUIT,""),
("Func_d271", "q", DO_NOT_QUIT,""),
("ScriptCommand_EnterMap", "bbood", DO_NOT_QUIT,""),
("ScriptCommand_MoveArbitraryNPC", "bm", DO_NOT_QUIT,""),
("Func_d209", "", DO_NOT_QUIT,""),
("Func_d38f", "b", DO_NOT_QUIT,""),
("Func_d396", "b", DO_NOT_QUIT,""),
("Func_cd76", "", DO_NOT_QUIT,""),
("Func_d39d", "b", DO_NOT_QUIT,""),
("Func_d3b9", "", DO_NOT_QUIT,""),
("ScriptCommand_TryGivePCPack", "b", DO_NOT_QUIT,""),
("ScriptCommand_nop", "", DO_NOT_QUIT,""),
("Func_d3d4", "q", DO_NOT_QUIT,""),
("Func_d3e0", "", DO_NOT_QUIT,""),
("Func_d3fe", "q", DO_NOT_QUIT,""),
("Func_d408", "b", DO_NOT_QUIT,""),
("Func_d40f", "q", DO_NOT_QUIT,""),
("ScriptCommand_PlaySFX", "b", DO_NOT_QUIT,""),
("ScriptCommand_PauseSong", "q", DO_NOT_QUIT,""),
("ScriptCommand_ResumeSong", "q", DO_NOT_QUIT,""),
("Func_d41d", "", DO_NOT_QUIT,""),
("ScriptCommand_WaitForSongToFinish", "q", DO_NOT_QUIT,""),
("Func_d435", "b", DO_NOT_QUIT,""),
("ScriptCommand_AskQuestionJumpDefaultYes", "tj", DO_NOT_QUIT,""),
("Func_d2f6", "q", DO_NOT_QUIT,""),
("Func_d317", "", DO_NOT_QUIT,""),
("Func_d43d", "", DO_NOT_QUIT,""),
("ScriptCommand_EndScriptLoop2", "q", QUIT_CONTINUE_CODE,""),
("ScriptCommand_EndScriptLoop3", "q", QUIT_CONTINUE_CODE,""),
("ScriptCommand_EndScriptLoop4", "q", QUIT_CONTINUE_CODE,""),
("ScriptCommand_EndScriptLoop5", "q", QUIT_CONTINUE_CODE,""),
("ScriptCommand_EndScriptLoop6", "q", QUIT_CONTINUE_CODE,""),
("ScriptCommand_SetFlagValue", "fb", DO_NOT_QUIT,""),
("ScriptCommand_JumpIfFlagZero1", "fj", DO_NOT_QUIT,""),
("ScriptCommand_JumpIfFlagNonzero1", "q", DO_NOT_QUIT,""),
("ScriptCommand_JumpIfFlagEqual", "fbj", DO_NOT_QUIT,""), # also capable of jumping
("ScriptCommand_JumpIfFlagNotEqual", "fbj", DO_NOT_QUIT,""), # jumps
("ScriptCommand_JumpIfFlagNotLessThan", "fbj", DO_NOT_QUIT,""),
("ScriptCommand_JumpIfFlagLessThan", "fbj", DO_NOT_QUIT,""),
("ScriptCommand_MaxOutFlagValue", "f", DO_NOT_QUIT,""),
("ScriptCommand_ZeroOutFlagValue", "f", DO_NOT_QUIT,""),
("ScriptCommand_JumpIfFlagNonzero2", "fj", DO_NOT_QUIT,""),
("ScriptCommand_JumpIfFlagZero2", "fj", DO_NOT_QUIT,""),
("ScriptCommand_IncrementFlagValue", "f", DO_NOT_QUIT,""),
("ScriptCommand_EndScriptLoop7", "q", QUIT_CONTINUE_CODE,""),
("ScriptCommand_EndScriptLoop8", "q", QUIT_CONTINUE_CODE,""),
("ScriptCommand_EndScriptLoop9", "q", QUIT_CONTINUE_CODE,""),
("ScriptCommand_EndScriptLoop10", "q", QUIT_CONTINUE_CODE,"")
]
main()