Pseudocode decompialtion improvements and docs

This commit is contained in:
MaddoScientisto 2026-03-26 22:10:48 +01:00
commit 589bfc31ef
1898 changed files with 60634 additions and 6597 deletions

View file

@ -22,6 +22,8 @@ Use these instructions when making changes in the local Ghidra MCP source at K:/
- Keep backward compatibility for endpoint naming when practical by adding aliases instead of removing old routes. - Keep backward compatibility for endpoint naming when practical by adding aliases instead of removing old routes.
- Keep xref and analysis outputs machine-friendly and evidence-rich (addresses, ref type, classification, function context). - Keep xref and analysis outputs machine-friendly and evidence-rich (addresses, ref type, classification, function context).
- **Terminal execution rule:** When running multi-line Python for testing or server-side scripts, do not paste multi-line code into interactive terminals. Always write the code to a temporary `.py` file and execute it with the Python interpreter. This prevents paste-related failures and preserves the intended execution environment.
## Verification Rules ## Verification Rules
- After server edits, run a Maven validation from K:/mcp/GhidraMCP. - After server edits, run a Maven validation from K:/mcp/GhidraMCP.

View file

@ -37,7 +37,8 @@ applyTo: "**"
- **Always use `rename_function_by_address`**`rename_function` (by name) fails with "must have required property 'old_name'" and is broken. Use `"function_address": "000c:XXXX"` format. - **Always use `rename_function_by_address`**`rename_function` (by name) fails with "must have required property 'old_name'" and is broken. Use `"function_address": "000c:XXXX"` format.
- For substantive RE batches, end with at least 6 concrete future steps unless the task is fully closed and there are genuinely fewer defensible next actions. - For substantive RE batches, end with at least 6 concrete future steps unless the task is fully closed and there are genuinely fewer defensible next actions.
- When a batch analyzes currently unnamed Ghidra functions and the behavior is clear enough, rename them in Ghidra instead of leaving them as positional `FUN_xxxx_xxxx` placeholders. - When a batch analyzes currently unnamed Ghidra functions and the behavior is clear enough, rename them in Ghidra instead of leaving them as positional `FUN_xxxx_xxxx` placeholders.
-
- **Terminal execution rule:** Always write multi-line Python scripts to a temporary `.py` file and execute that file with the Python interpreter instead of pasting multi-line Python directly into an interactive terminal. This avoids paste/encoding/line-ending issues and ensures the script runs in the expected environment.
# Executable Write Safety # Executable Write Safety
- Normal Ghidra database work on `CRUSADER.EXE` remains in scope: renames, comments, prototypes, local-variable/type cleanup, function creation/deletion, and boundary repair are allowed unless the user says otherwise. - Normal Ghidra database work on `CRUSADER.EXE` remains in scope: renames, comments, prototypes, local-variable/type cleanup, function creation/deletion, and boundary repair are allowed unless the user says otherwise.

3
.gitignore vendored
View file

@ -1,5 +1,5 @@
# Ghidra caches and temporary files # Ghidra caches and temporary files
ghidra_* ghidra_*/**
*.bak *.bak
*.tmp *.tmp
*.swp *.swp
@ -42,3 +42,4 @@ USECODE/EUSECODE_extracted/chunks/**
tools/pyghidra_crusader/__pycache__/** tools/pyghidra_crusader/__pycache__/**
bin/** bin/**
USECODE/REGRET/REGRET_USECODE_extracted/chunks/** USECODE/REGRET/REGRET_USECODE_extracted/chunks/**
exports/**

View file

@ -10,7 +10,488 @@
</SAVE_STATE> </SAVE_STATE>
</PROJECT_DATA_XML_NAME> </PROJECT_DATA_XML_NAME>
<TOOL_MANAGER ACTIVE_WORKSPACE="Workspace"> <TOOL_MANAGER ACTIVE_WORKSPACE="Workspace">
<WORKSPACE NAME="Workspace" ACTIVE="true" /> <WORKSPACE NAME="Workspace" ACTIVE="true">
<RUNNING_TOOL TOOL_NAME="CodeBrowser">
<ROOT_NODE X_POS="3" Y_POS="78" WIDTH="1815" HEIGHT="1110" EX_STATE="0">
<SPLIT_NODE WIDTH="100" HEIGHT="100" DIVIDER_LOCATION="0" ORIENTATION="VERTICAL">
<SPLIT_NODE WIDTH="1801" HEIGHT="1014" DIVIDER_LOCATION="774" ORIENTATION="HORIZONTAL">
<SPLIT_NODE WIDTH="100" HEIGHT="100" DIVIDER_LOCATION="0" ORIENTATION="VERTICAL">
<SPLIT_NODE WIDTH="1801" HEIGHT="1014" DIVIDER_LOCATION="880" ORIENTATION="VERTICAL">
<SPLIT_NODE WIDTH="1801" HEIGHT="889" DIVIDER_LOCATION="863" ORIENTATION="VERTICAL">
<SPLIT_NODE WIDTH="100" HEIGHT="100" DIVIDER_LOCATION="0" ORIENTATION="VERTICAL">
<SPLIT_NODE WIDTH="1621" HEIGHT="816" DIVIDER_LOCATION="148" ORIENTATION="VERTICAL">
<COMPONENT_NODE TOP_INFO="0">
<COMPONENT_INFO NAME="Entropy" OWNER="EntropyPlugin" TITLE="Entropy" ACTIVE="false" GROUP="Header" INSTANCE_ID="3207819926581772885" />
<COMPONENT_INFO NAME="Overview" OWNER="OverviewPlugin" TITLE="Overview" ACTIVE="false" GROUP="Header" INSTANCE_ID="3207819926581772883" />
</COMPONENT_NODE>
<SPLIT_NODE WIDTH="1801" HEIGHT="764" DIVIDER_LOCATION="174" ORIENTATION="HORIZONTAL">
<SPLIT_NODE WIDTH="313" HEIGHT="764" DIVIDER_LOCATION="640" ORIENTATION="VERTICAL">
<SPLIT_NODE WIDTH="313" HEIGHT="486" DIVIDER_LOCATION="502" ORIENTATION="VERTICAL">
<COMPONENT_NODE TOP_INFO="0">
<COMPONENT_INFO NAME="Program Tree" OWNER="ProgramTreePlugin" TITLE="Program Trees" ACTIVE="true" GROUP="Default" INSTANCE_ID="3721499797143378251" />
</COMPONENT_NODE>
<COMPONENT_NODE TOP_INFO="0">
<COMPONENT_INFO NAME="Symbol Tree" OWNER="SymbolTreePlugin" TITLE="Symbol Tree" ACTIVE="true" GROUP="Default" INSTANCE_ID="3721499797143378246" />
</COMPONENT_NODE>
</SPLIT_NODE>
<COMPONENT_NODE TOP_INFO="0">
<COMPONENT_INFO NAME="DataTypes Provider" OWNER="DataTypeManagerPlugin" TITLE="Data Type Manager" ACTIVE="true" GROUP="Default" INSTANCE_ID="3721499813509552472" />
</COMPONENT_NODE>
</SPLIT_NODE>
<SPLIT_NODE WIDTH="1484" HEIGHT="764" DIVIDER_LOCATION="785" ORIENTATION="VERTICAL">
<SPLIT_NODE WIDTH="1386" HEIGHT="638" DIVIDER_LOCATION="705" ORIENTATION="VERTICAL">
<SPLIT_NODE WIDTH="1484" HEIGHT="597" DIVIDER_LOCATION="490" ORIENTATION="HORIZONTAL">
<COMPONENT_NODE TOP_INFO="0">
<COMPONENT_INFO NAME="Listing" OWNER="CodeBrowserPlugin" TITLE="Listing: CRUSADER.EXE" ACTIVE="true" GROUP="Core" INSTANCE_ID="3721499797143378261" />
</COMPONENT_NODE>
<COMPONENT_NODE TOP_INFO="0">
<COMPONENT_INFO NAME="Decompiler" OWNER="DecompilePlugin" TITLE="Decompile: Key_HandleOptionKeys" ACTIVE="true" GROUP="Default" INSTANCE_ID="3721499797143378252" />
<COMPONENT_INFO NAME="Bytes" OWNER="ByteViewerPlugin" TITLE="Bytes: CRUSADER.EXE" ACTIVE="false" GROUP="Default" INSTANCE_ID="3721499797143378254" />
<COMPONENT_INFO NAME="Data Window" OWNER="DataWindowPlugin" TITLE="Defined Data" ACTIVE="false" GROUP="Default" INSTANCE_ID="3721499813509552477" />
<COMPONENT_INFO NAME="Defined Strings" OWNER="ViewStringsPlugin" TITLE="Defined Strings" ACTIVE="false" GROUP="Default" INSTANCE_ID="3721499813597632833" />
<COMPONENT_INFO NAME="Equates Table" OWNER="EquateTablePlugin" TITLE="Equates Table" ACTIVE="false" GROUP="Default" INSTANCE_ID="3721499797143378258" />
<COMPONENT_INFO NAME="External Programs" OWNER="ReferencesPlugin" TITLE="External Programs" ACTIVE="false" GROUP="Default" INSTANCE_ID="3721499797143378262" />
<COMPONENT_INFO NAME="Functions Window" OWNER="FunctionWindowPlugin" TITLE="Functions" ACTIVE="false" GROUP="Default" INSTANCE_ID="3721499797143378265" />
<COMPONENT_INFO NAME="Relocation Table" OWNER="RelocationTablePlugin" TITLE="Relocation Table" ACTIVE="false" GROUP="Default" INSTANCE_ID="3721499813597632832" />
</COMPONENT_NODE>
</SPLIT_NODE>
<SPLIT_NODE WIDTH="1386" HEIGHT="189" DIVIDER_LOCATION="495" ORIENTATION="HORIZONTAL">
<COMPONENT_NODE TOP_INFO="0">
<COMPONENT_INFO NAME="Data Type Preview" OWNER="DataTypePreviewPlugin" TITLE="Data Type Preview" ACTIVE="false" GROUP="Default" INSTANCE_ID="3721499813509552470" />
</COMPONENT_NODE>
<COMPONENT_NODE TOP_INFO="0">
<COMPONENT_INFO NAME="Virtual Disassembler - Current Instruction" OWNER="DisassembledViewPlugin" TITLE="Disassembled View" ACTIVE="false" GROUP="Default" INSTANCE_ID="3721499797143378257" />
</COMPONENT_NODE>
</SPLIT_NODE>
</SPLIT_NODE>
<COMPONENT_NODE TOP_INFO="0">
<COMPONENT_INFO NAME="Console" OWNER="ConsolePlugin" TITLE="Console" ACTIVE="true" GROUP="Default" INSTANCE_ID="3721499797143378253" />
<COMPONENT_INFO NAME="Bookmarks" OWNER="BookmarkPlugin" TITLE="Bookmarks" ACTIVE="false" GROUP="Core.Bookmarks" INSTANCE_ID="3721499797143378250" />
</COMPONENT_NODE>
</SPLIT_NODE>
</SPLIT_NODE>
</SPLIT_NODE>
<COMPONENT_NODE TOP_INFO="0">
<COMPONENT_INFO NAME="Function Call Trees" OWNER="CallTreePlugin" TITLE="Function Call Trees" ACTIVE="false" GROUP="Default" INSTANCE_ID="3721499797143378247" />
</COMPONENT_NODE>
</SPLIT_NODE>
<COMPONENT_NODE TOP_INFO="0">
<COMPONENT_INFO NAME="Domain Events" OWNER="DomainEventDisplayPlugin" TITLE="Domain Object Event Display" ACTIVE="true" GROUP="Default" INSTANCE_ID="3721499797143378259" />
</COMPONENT_NODE>
</SPLIT_NODE>
<COMPONENT_NODE TOP_INFO="0">
<COMPONENT_INFO NAME="Plugin Event Display" OWNER="EventDisplayPlugin" TITLE="Plugin Event Display" ACTIVE="true" GROUP="Default" INSTANCE_ID="3721499797143378256" />
</COMPONENT_NODE>
</SPLIT_NODE>
<COMPONENT_NODE TOP_INFO="0">
<COMPONENT_INFO NAME="Database Viewer" OWNER="DbViewerPlugin" TITLE="Database Viewer" ACTIVE="false" GROUP="Default" INSTANCE_ID="3721499814153378120" />
</COMPONENT_NODE>
</SPLIT_NODE>
<COMPONENT_NODE TOP_INFO="0">
<COMPONENT_INFO NAME="Decompiler" OWNER="DecompilePlugin" TITLE="[Decompile: FUN_0000_2b36]" ACTIVE="false" GROUP="disconnected" INSTANCE_ID="3720776277651544989" />
</COMPONENT_NODE>
</SPLIT_NODE>
<COMPONENT_NODE TOP_INFO="0">
<COMPONENT_INFO NAME="Diff Location Details" OWNER="ProgramDiffPlugin" TITLE="Diff Details" ACTIVE="false" GROUP="Default" INSTANCE_ID="3721161170088475892" />
</COMPONENT_NODE>
</SPLIT_NODE>
<WINDOW_NODE X_POS="426" Y_POS="178" WIDTH="1033" HEIGHT="689">
<COMPONENT_NODE TOP_INFO="0">
<COMPONENT_INFO NAME="Script Manager" OWNER="GhidraScriptMgrPlugin" TITLE="Script Manager" ACTIVE="false" GROUP="Script Group" INSTANCE_ID="3721499797143378248" />
</COMPONENT_NODE>
</WINDOW_NODE>
<WINDOW_NODE X_POS="423" Y_POS="144" WIDTH="927" HEIGHT="695">
<COMPONENT_NODE TOP_INFO="0">
<COMPONENT_INFO NAME="Memory Map" OWNER="MemoryMapPlugin" TITLE="Memory Map" ACTIVE="false" GROUP="Default" INSTANCE_ID="3721499797143378243" />
</COMPONENT_NODE>
</WINDOW_NODE>
<WINDOW_NODE X_POS="383" Y_POS="7" WIDTH="1020" HEIGHT="1038">
<COMPONENT_NODE TOP_INFO="0">
<COMPONENT_INFO NAME="Function Graph" OWNER="FunctionGraphPlugin" TITLE="Function Graph" ACTIVE="false" GROUP="Function Graph" INSTANCE_ID="3721499813597632834" />
</COMPONENT_NODE>
</WINDOW_NODE>
<WINDOW_NODE X_POS="550" Y_POS="206" WIDTH="655" HEIGHT="509">
<COMPONENT_NODE TOP_INFO="0">
<COMPONENT_INFO NAME="Register Manager" OWNER="RegisterPlugin" TITLE="Register Manager" ACTIVE="false" GROUP="Default" INSTANCE_ID="3721499797143378264" />
</COMPONENT_NODE>
</WINDOW_NODE>
<WINDOW_NODE X_POS="287" Y_POS="186" WIDTH="1424" HEIGHT="666">
<SPLIT_NODE WIDTH="1408" HEIGHT="559" DIVIDER_LOCATION="573" ORIENTATION="HORIZONTAL">
<COMPONENT_NODE TOP_INFO="0">
<COMPONENT_INFO NAME="Symbol Table" OWNER="SymbolTablePlugin" TITLE="Symbol Table" ACTIVE="false" GROUP="symbolTable" INSTANCE_ID="3721499813509552478" />
</COMPONENT_NODE>
<COMPONENT_NODE TOP_INFO="0">
<COMPONENT_INFO NAME="Symbol References" OWNER="SymbolTablePlugin" TITLE="Symbol References" ACTIVE="false" GROUP="symbolTable" INSTANCE_ID="3721499813509552479" />
</COMPONENT_NODE>
</SPLIT_NODE>
</WINDOW_NODE>
<WINDOW_NODE X_POS="-1" Y_POS="-1" WIDTH="0" HEIGHT="0">
<COMPONENT_NODE TOP_INFO="0">
<COMPONENT_INFO NAME="Checksum Generator" OWNER="ComputeChecksumsPlugin" TITLE="Checksum Generator" ACTIVE="false" GROUP="Default" INSTANCE_ID="3721499797143378260" />
</COMPONENT_NODE>
</WINDOW_NODE>
<WINDOW_NODE X_POS="-1" Y_POS="-1" WIDTH="0" HEIGHT="0">
<COMPONENT_NODE TOP_INFO="0">
<COMPONENT_INFO NAME="Function Tags" OWNER="FunctionTagPlugin" TITLE="Function Tags" ACTIVE="false" GROUP="Default" INSTANCE_ID="3721499813509552473" />
</COMPONENT_NODE>
</WINDOW_NODE>
<WINDOW_NODE X_POS="-1" Y_POS="-1" WIDTH="0" HEIGHT="0">
<COMPONENT_NODE TOP_INFO="0">
<COMPONENT_INFO NAME="Comment Window" OWNER="CommentWindowPlugin" TITLE="Comments" ACTIVE="false" GROUP="Default" INSTANCE_ID="3721499813509552476" />
</COMPONENT_NODE>
</WINDOW_NODE>
<WINDOW_NODE X_POS="-1" Y_POS="-1" WIDTH="0" HEIGHT="0">
<COMPONENT_NODE TOP_INFO="0">
<COMPONENT_INFO NAME="Python" OWNER="InterpreterPanelPlugin" TITLE="Python" ACTIVE="false" GROUP="Default" INSTANCE_ID="3207819978370941531" />
</COMPONENT_NODE>
</WINDOW_NODE>
<WINDOW_NODE X_POS="0" Y_POS="0" WIDTH="0" HEIGHT="0">
<COMPONENT_NODE TOP_INFO="0">
<COMPONENT_INFO NAME="Jython" OWNER="Jython" TITLE="Jython" ACTIVE="false" GROUP="Default" INSTANCE_ID="3721499813509552474" />
</COMPONENT_NODE>
</WINDOW_NODE>
<WINDOW_NODE X_POS="0" Y_POS="0" WIDTH="0" HEIGHT="0">
<COMPONENT_NODE TOP_INFO="0">
<COMPONENT_INFO NAME="Bundle Manager" OWNER="GhidraScriptMgrPlugin" TITLE="Bundle Manager" ACTIVE="false" GROUP="Default" INSTANCE_ID="3721499797143378249" />
</COMPONENT_NODE>
</WINDOW_NODE>
<WINDOW_NODE X_POS="0" Y_POS="0" WIDTH="0" HEIGHT="0">
<COMPONENT_NODE TOP_INFO="0">
<COMPONENT_INFO NAME="PyGhidra" OWNER="PyGhidra" TITLE="PyGhidra" ACTIVE="false" GROUP="Default" INSTANCE_ID="3721499813509552475" />
</COMPONENT_NODE>
</WINDOW_NODE>
<WINDOW_NODE X_POS="0" Y_POS="0" WIDTH="0" HEIGHT="0">
<COMPONENT_NODE TOP_INFO="0">
<COMPONENT_INFO NAME="Source Files and Transforms" OWNER="SourceFilesTablePlugin" TITLE="Source Files and Transforms" ACTIVE="false" GROUP="Default" INSTANCE_ID="3721499797143378263" />
</COMPONENT_NODE>
</WINDOW_NODE>
<WINDOW_NODE X_POS="0" Y_POS="0" WIDTH="0" HEIGHT="0">
<COMPONENT_NODE TOP_INFO="0">
<COMPONENT_INFO NAME="Function Call Graph" OWNER="FunctionCallGraphPlugin" TITLE="Function Call Graph" ACTIVE="false" GROUP="Function Call Graph" INSTANCE_ID="3721499813509552471" />
</COMPONENT_NODE>
</WINDOW_NODE>
<WINDOW_NODE X_POS="588" Y_POS="50" WIDTH="1018" HEIGHT="1087">
<COMPONENT_NODE TOP_INFO="0">
<COMPONENT_INFO NAME="Graph" OWNER="DefaultGraphDisplay" TITLE="AST Data Flow Graph For entity_state_tick_dispatch" ACTIVE="false" GROUP="ProgramGraph" INSTANCE_ID="3720233517670421199" />
</COMPONENT_NODE>
</WINDOW_NODE>
<WINDOW_NODE X_POS="0" Y_POS="0" WIDTH="0" HEIGHT="0">
<COMPONENT_NODE TOP_INFO="0">
<COMPONENT_INFO NAME="Window Locations" OWNER="WindowLocationPlugin" TITLE="Window Locations" ACTIVE="false" GROUP="Default" INSTANCE_ID="3721499797143378244" />
</COMPONENT_NODE>
</WINDOW_NODE>
<WINDOW_NODE X_POS="890" Y_POS="456" WIDTH="729" HEIGHT="566">
<COMPONENT_NODE TOP_INFO="0">
<COMPONENT_INFO NAME="Location References Provider" OWNER="LocationReferencesPlugin" TITLE="References to g_jassica16Offset - 7 locations" ACTIVE="false" GROUP="Default" INSTANCE_ID="3721161260863700211" />
</COMPONENT_NODE>
</WINDOW_NODE>
</ROOT_NODE>
<DATA_STATE>
<PLUGIN NAME="NavigationHistoryPlugin">
<XML NAME="HISTORY_LIST_0">
<SAVE_STATE>
<STATE NAME="CURRENT_LOC_INDEX" TYPE="int" VALUE="3" />
<STATE NAME="LOCATION_COUNT" TYPE="int" VALUE="4" />
<STATE NAME="MEMENTO_CLASS0" TYPE="string" VALUE="ghidra.app.plugin.core.gotoquery.DefaultNavigatableLocationMemento" />
<STATE NAME="MEMENTO_CLASS1" TYPE="string" VALUE="ghidra.app.plugin.core.gotoquery.DefaultNavigatableLocationMemento" />
<STATE NAME="MEMENTO_CLASS2" TYPE="string" VALUE="ghidra.app.plugin.core.gotoquery.DefaultNavigatableLocationMemento" />
<STATE NAME="MEMENTO_CLASS3" TYPE="string" VALUE="ghidra.app.plugin.core.gotoquery.DefaultNavigatableLocationMemento" />
<XML NAME="MEMENTO_DATA0">
<SAVE_STATE>
<XML NAME="MEMENTO0">
<SAVE_STATE>
<STATE NAME="CURSOR_OFFSET" TYPE="int" VALUE="0" />
<STATE NAME="MEMENTO_CLASS" TYPE="string" VALUE="ghidra.app.plugin.core.codebrowser.CodeViewerLocationMemento" />
<STATE NAME="NAV_ID" TYPE="long" VALUE="3721499797143378261" />
<STATE NAME="PROGRAM_ID" TYPE="long" VALUE="3721129048497902283" />
<STATE NAME="PROGRAM_PATH_" TYPE="string" VALUE="Crusader:/CRUSADER.EXE" />
<STATE NAME="_ADDRESS" TYPE="string" VALUE="1000:0000" />
<STATE NAME="_BYTE_ADDR" TYPE="string" VALUE="1000:0000" />
<STATE NAME="_CHAR_OFFSET" TYPE="int" VALUE="0" />
<STATE NAME="_CLASSNAME" TYPE="string" VALUE="ghidra.program.util.MemoryBlockStartFieldLocation" />
<STATE NAME="_COLUMN" TYPE="int" VALUE="0" />
<ARRAY NAME="_COMMENT" TYPE="string">
<A VALUE="//" />
<A VALUE="// Code1" />
<A VALUE="// ram:1000:0000-ram:1000:83ff" />
<A VALUE="//" />
</ARRAY>
<STATE NAME="_ROW" TYPE="int" VALUE="0" />
<STATE NAME="_TYPE" TYPE="int" VALUE="-1" />
</SAVE_STATE>
</XML>
<STATE NAME="MEMENTO_CLASS" TYPE="string" VALUE="ghidra.app.plugin.core.gotoquery.DefaultNavigatableLocationMemento" />
<STATE NAME="NUM_MEMENTOS" TYPE="int" VALUE="1" />
<STATE NAME="PROGRAM_ID" TYPE="long" VALUE="3721129048497902283" />
<STATE NAME="PROGRAM_PATH_" TYPE="string" VALUE="Crusader:/CRUSADER.EXE" />
<STATE NAME="_ADDRESS" TYPE="string" VALUE="1000:0000" />
<STATE NAME="_BYTE_ADDR" TYPE="string" VALUE="1000:0000" />
<STATE NAME="_CHAR_OFFSET" TYPE="int" VALUE="0" />
<STATE NAME="_CLASSNAME" TYPE="string" VALUE="ghidra.program.util.MemoryBlockStartFieldLocation" />
<STATE NAME="_COLUMN" TYPE="int" VALUE="0" />
<ARRAY NAME="_COMMENT" TYPE="string">
<A VALUE="//" />
<A VALUE="// Code1" />
<A VALUE="// ram:1000:0000-ram:1000:83ff" />
<A VALUE="//" />
</ARRAY>
<STATE NAME="_ROW" TYPE="int" VALUE="0" />
<STATE NAME="_TYPE" TYPE="int" VALUE="-1" />
</SAVE_STATE>
</XML>
<XML NAME="MEMENTO_DATA1">
<SAVE_STATE>
<XML NAME="MEMENTO0">
<SAVE_STATE>
<STATE NAME="CURSOR_OFFSET" TYPE="int" VALUE="283" />
<STATE NAME="MEMENTO_CLASS" TYPE="string" VALUE="ghidra.app.plugin.core.codebrowser.CodeViewerLocationMemento" />
<STATE NAME="NAV_ID" TYPE="long" VALUE="3721499797143378261" />
<STATE NAME="PROGRAM_ID" TYPE="long" VALUE="3721129048497902283" />
<STATE NAME="PROGRAM_PATH_" TYPE="string" VALUE="Crusader:/CRUSADER.EXE" />
<STATE NAME="_ADDRESS" TYPE="string" VALUE="1130:0896" />
<STATE NAME="_BYTE_ADDR" TYPE="string" VALUE="1130:0896" />
<STATE NAME="_CHAR_OFFSET" TYPE="int" VALUE="0" />
<STATE NAME="_CLASSNAME" TYPE="string" VALUE="ghidra.program.util.FunctionReturnTypeFieldLocation" />
<STATE NAME="_COLUMN" TYPE="int" VALUE="0" />
<STATE NAME="_FUNC_ADDRESS" TYPE="string" VALUE="1130:0896" />
<STATE NAME="_RETURN_TYPE" TYPE="string" VALUE="byte" />
<STATE NAME="_ROW" TYPE="int" VALUE="0" />
<STATE NAME="_SIGNATURE" TYPE="string" VALUE="byte __cdecl16far Key_HandleOptionKeys(struct KeyEvent * keyevent)" />
</SAVE_STATE>
</XML>
<STATE NAME="MEMENTO_CLASS" TYPE="string" VALUE="ghidra.app.plugin.core.gotoquery.DefaultNavigatableLocationMemento" />
<STATE NAME="NUM_MEMENTOS" TYPE="int" VALUE="1" />
<STATE NAME="PROGRAM_ID" TYPE="long" VALUE="3721129048497902283" />
<STATE NAME="PROGRAM_PATH_" TYPE="string" VALUE="Crusader:/CRUSADER.EXE" />
<STATE NAME="_ADDRESS" TYPE="string" VALUE="1130:0896" />
<STATE NAME="_BYTE_ADDR" TYPE="string" VALUE="1130:0896" />
<STATE NAME="_CHAR_OFFSET" TYPE="int" VALUE="0" />
<STATE NAME="_CLASSNAME" TYPE="string" VALUE="ghidra.program.util.FunctionReturnTypeFieldLocation" />
<STATE NAME="_COLUMN" TYPE="int" VALUE="0" />
<STATE NAME="_FUNC_ADDRESS" TYPE="string" VALUE="1130:0896" />
<STATE NAME="_RETURN_TYPE" TYPE="string" VALUE="byte" />
<STATE NAME="_ROW" TYPE="int" VALUE="0" />
<STATE NAME="_SIGNATURE" TYPE="string" VALUE="byte Key_HandleOptionKeys(struct KeyEvent * keyevent)" />
</SAVE_STATE>
</XML>
<XML NAME="MEMENTO_DATA2">
<SAVE_STATE>
<STATE NAME="FOCUSED_NAV" TYPE="long" VALUE="3721499797143378252" />
<XML NAME="MEMENTO0">
<SAVE_STATE>
<STATE NAME="CURSOR_OFFSET" TYPE="int" VALUE="278" />
<STATE NAME="MEMENTO_CLASS" TYPE="string" VALUE="ghidra.app.plugin.core.codebrowser.CodeViewerLocationMemento" />
<STATE NAME="NAV_ID" TYPE="long" VALUE="3721499797143378261" />
<STATE NAME="PROGRAM_ID" TYPE="long" VALUE="3721129048497902283" />
<STATE NAME="PROGRAM_PATH_" TYPE="string" VALUE="Crusader:/CRUSADER.EXE" />
<STATE NAME="_ADDRESS" TYPE="string" VALUE="1130:0896" />
<STATE NAME="_BYTE_ADDR" TYPE="string" VALUE="1130:0896" />
<STATE NAME="_CHAR_OFFSET" TYPE="int" VALUE="18" />
<STATE NAME="_CLASSNAME" TYPE="string" VALUE="ghidra.program.util.FunctionNameFieldLocation" />
<STATE NAME="_COLUMN" TYPE="int" VALUE="0" />
<STATE NAME="_FUNCTION_NAME" TYPE="string" VALUE="Key_HandleOptionKeys" />
<STATE NAME="_FUNC_ADDRESS" TYPE="string" VALUE="1130:0896" />
<STATE NAME="_ROW" TYPE="int" VALUE="0" />
<STATE NAME="_SIGNATURE" TYPE="string" VALUE="byte __cdecl16far Key_HandleOptionKeys(struct KeyEvent * keyevent)" />
</SAVE_STATE>
</XML>
<XML NAME="MEMENTO1">
<SAVE_STATE>
<STATE NAME="INDEX" TYPE="int" VALUE="0" />
<STATE NAME="MEMENTO_CLASS" TYPE="string" VALUE="ghidra.app.plugin.core.decompile.DecompilerLocationMemento" />
<STATE NAME="NAV_ID" TYPE="long" VALUE="3721499797143378252" />
<STATE NAME="PROGRAM_ID" TYPE="long" VALUE="3721129048497902283" />
<STATE NAME="PROGRAM_PATH_" TYPE="string" VALUE="Crusader:/CRUSADER.EXE" />
<STATE NAME="X_OFFSET" TYPE="int" VALUE="0" />
<STATE NAME="Y_OFFSET" TYPE="int" VALUE="0" />
<STATE NAME="_ADDRESS" TYPE="string" VALUE="1130:0896" />
<STATE NAME="_BYTE_ADDR" TYPE="string" VALUE="1130:0896" />
<STATE NAME="_CHAR_OFFSET" TYPE="int" VALUE="0" />
<STATE NAME="_CHAR_POS" TYPE="int" VALUE="30" />
<STATE NAME="_CLASSNAME" TYPE="string" VALUE="ghidra.app.decompiler.location.FunctionNameDecompilerLocation" />
<STATE NAME="_COLUMN" TYPE="int" VALUE="0" />
<STATE NAME="_FUNCTION_ENTRY" TYPE="string" VALUE="1130:0896" />
<STATE NAME="_FUNCTION_NAME" TYPE="string" VALUE="Key_HandleOptionKeys" />
<STATE NAME="_FUNC_ADDRESS" TYPE="string" VALUE="1130:0896" />
<STATE NAME="_LINE_NUM" TYPE="int" VALUE="3" />
<STATE NAME="_ROW" TYPE="int" VALUE="0" />
<STATE NAME="_SIGNATURE" TYPE="string" VALUE="" />
<STATE NAME="_TOKEN_TEXT" TYPE="string" VALUE="Key_HandleOptionKeys" />
</SAVE_STATE>
</XML>
<STATE NAME="MEMENTO_CLASS" TYPE="string" VALUE="ghidra.app.plugin.core.gotoquery.DefaultNavigatableLocationMemento" />
<STATE NAME="NUM_MEMENTOS" TYPE="int" VALUE="2" />
<STATE NAME="PROGRAM_ID" TYPE="long" VALUE="3721129048497902283" />
<STATE NAME="PROGRAM_PATH_" TYPE="string" VALUE="Crusader:/CRUSADER.EXE" />
<STATE NAME="_ADDRESS" TYPE="string" VALUE="1130:0896" />
<STATE NAME="_BYTE_ADDR" TYPE="string" VALUE="1130:0896" />
<STATE NAME="_CHAR_OFFSET" TYPE="int" VALUE="0" />
<STATE NAME="_CHAR_POS" TYPE="int" VALUE="30" />
<STATE NAME="_CLASSNAME" TYPE="string" VALUE="ghidra.app.decompiler.location.FunctionNameDecompilerLocation" />
<STATE NAME="_COLUMN" TYPE="int" VALUE="0" />
<STATE NAME="_FUNCTION_ENTRY" TYPE="string" VALUE="1130:0896" />
<STATE NAME="_FUNCTION_NAME" TYPE="string" VALUE="Key_HandleOptionKeys" />
<STATE NAME="_FUNC_ADDRESS" TYPE="string" VALUE="1130:0896" />
<STATE NAME="_LINE_NUM" TYPE="int" VALUE="3" />
<STATE NAME="_ROW" TYPE="int" VALUE="0" />
<STATE NAME="_SIGNATURE" TYPE="string" VALUE="" />
<STATE NAME="_TOKEN_TEXT" TYPE="string" VALUE="Key_HandleOptionKeys" />
</SAVE_STATE>
</XML>
<XML NAME="MEMENTO_DATA3">
<SAVE_STATE>
<STATE NAME="FOCUSED_NAV" TYPE="long" VALUE="3721499797143378252" />
<XML NAME="MEMENTO0">
<SAVE_STATE>
<STATE NAME="CURSOR_OFFSET" TYPE="int" VALUE="278" />
<STATE NAME="MEMENTO_CLASS" TYPE="string" VALUE="ghidra.app.plugin.core.codebrowser.CodeViewerLocationMemento" />
<STATE NAME="NAV_ID" TYPE="long" VALUE="3721499797143378261" />
<STATE NAME="PROGRAM_ID" TYPE="long" VALUE="3721129048497902283" />
<STATE NAME="PROGRAM_PATH_" TYPE="string" VALUE="Crusader:/CRUSADER.EXE" />
<STATE NAME="_ADDRESS" TYPE="string" VALUE="1130:0896" />
<STATE NAME="_ADDR_REP" TYPE="string" VALUE="1130:0896" />
<STATE NAME="_BYTE_ADDR" TYPE="string" VALUE="1130:0896" />
<STATE NAME="_CHAR_OFFSET" TYPE="int" VALUE="0" />
<STATE NAME="_CLASSNAME" TYPE="string" VALUE="ghidra.program.util.AddressFieldLocation" />
<STATE NAME="_COLUMN" TYPE="int" VALUE="0" />
<STATE NAME="_ROW" TYPE="int" VALUE="0" />
</SAVE_STATE>
</XML>
<XML NAME="MEMENTO1">
<SAVE_STATE>
<STATE NAME="INDEX" TYPE="int" VALUE="0" />
<STATE NAME="MEMENTO_CLASS" TYPE="string" VALUE="ghidra.app.plugin.core.decompile.DecompilerLocationMemento" />
<STATE NAME="NAV_ID" TYPE="long" VALUE="3721499797143378252" />
<STATE NAME="PROGRAM_ID" TYPE="long" VALUE="3721129048497902283" />
<STATE NAME="PROGRAM_PATH_" TYPE="string" VALUE="Crusader:/CRUSADER.EXE" />
<STATE NAME="X_OFFSET" TYPE="int" VALUE="0" />
<STATE NAME="Y_OFFSET" TYPE="int" VALUE="0" />
<STATE NAME="_ADDRESS" TYPE="string" VALUE="1130:0896" />
<STATE NAME="_BYTE_ADDR" TYPE="string" VALUE="1130:0896" />
<STATE NAME="_CHAR_OFFSET" TYPE="int" VALUE="0" />
<STATE NAME="_CHAR_POS" TYPE="int" VALUE="30" />
<STATE NAME="_CLASSNAME" TYPE="string" VALUE="ghidra.app.decompiler.location.FunctionNameDecompilerLocation" />
<STATE NAME="_COLUMN" TYPE="int" VALUE="0" />
<STATE NAME="_FUNCTION_ENTRY" TYPE="string" VALUE="1130:0896" />
<STATE NAME="_FUNCTION_NAME" TYPE="string" VALUE="Key_HandleOptionKeys" />
<STATE NAME="_FUNC_ADDRESS" TYPE="string" VALUE="1130:0896" />
<STATE NAME="_LINE_NUM" TYPE="int" VALUE="3" />
<STATE NAME="_ROW" TYPE="int" VALUE="0" />
<STATE NAME="_SIGNATURE" TYPE="string" VALUE="" />
<STATE NAME="_TOKEN_TEXT" TYPE="string" VALUE="Key_HandleOptionKeys" />
</SAVE_STATE>
</XML>
<STATE NAME="MEMENTO_CLASS" TYPE="string" VALUE="ghidra.app.plugin.core.gotoquery.DefaultNavigatableLocationMemento" />
<STATE NAME="NUM_MEMENTOS" TYPE="int" VALUE="2" />
<STATE NAME="PROGRAM_ID" TYPE="long" VALUE="3721129048497902283" />
<STATE NAME="PROGRAM_PATH_" TYPE="string" VALUE="Crusader:/CRUSADER.EXE" />
<STATE NAME="_ADDRESS" TYPE="string" VALUE="1130:0896" />
<STATE NAME="_BYTE_ADDR" TYPE="string" VALUE="1130:0896" />
<STATE NAME="_CHAR_OFFSET" TYPE="int" VALUE="0" />
<STATE NAME="_CLASSNAME" TYPE="string" VALUE="ghidra.program.util.ProgramLocation" />
<STATE NAME="_COLUMN" TYPE="int" VALUE="0" />
<STATE NAME="_ROW" TYPE="int" VALUE="0" />
</SAVE_STATE>
</XML>
<STATE NAME="NAV_ID" TYPE="long" VALUE="-1" />
</SAVE_STATE>
</XML>
<STATE NAME="LIST_COUNT" TYPE="int" VALUE="1" />
</PLUGIN>
<PLUGIN NAME="ProgramTreePlugin">
<STATE NAME="Current Viewname" TYPE="string" VALUE="Program Tree" />
<ARRAY NAME="GroupNameProgram Tree0" TYPE="string">
<A VALUE="CRUSADER.EXE" />
</ARRAY>
<STATE NAME="NavigationToggleState" TYPE="boolean" VALUE="false" />
<STATE NAME="NumberOfGroupsProgram Tree" TYPE="int" VALUE="1" />
<STATE NAME="NumberOfViews" TYPE="int" VALUE="1" />
<STATE NAME="TreeName-0" TYPE="string" VALUE="Program Tree" />
</PLUGIN>
<PLUGIN NAME="DecompilePlugin">
<STATE NAME="INDEX" TYPE="int" VALUE="115" />
<STATE NAME="NAV_ID" TYPE="long" VALUE="3721499797143378252" />
<STATE NAME="Num Disconnected" TYPE="int" VALUE="0" />
<STATE NAME="Y_OFFSET" TYPE="int" VALUE="-13" />
<STATE NAME="_ADDRESS" TYPE="string" VALUE="1130:0896" />
<STATE NAME="_BYTE_ADDR" TYPE="string" VALUE="1130:0896" />
<STATE NAME="_CHAR_OFFSET" TYPE="int" VALUE="0" />
<STATE NAME="_CHAR_POS" TYPE="int" VALUE="26" />
<STATE NAME="_CLASSNAME" TYPE="string" VALUE="ghidra.app.decompiler.location.FunctionNameDecompilerLocation" />
<STATE NAME="_COLUMN" TYPE="int" VALUE="0" />
<STATE NAME="_FUNCTION_ENTRY" TYPE="string" VALUE="1130:0896" />
<STATE NAME="_FUNCTION_NAME" TYPE="string" VALUE="Key_HandleOptionKeys" />
<STATE NAME="_FUNC_ADDRESS" TYPE="string" VALUE="1130:0896" />
<STATE NAME="_LINE_NUM" TYPE="int" VALUE="3" />
<STATE NAME="_ROW" TYPE="int" VALUE="0" />
<STATE NAME="_SIGNATURE" TYPE="string" VALUE="" />
<STATE NAME="_TOKEN_TEXT" TYPE="string" VALUE="Key_HandleOptionKeys" />
</PLUGIN>
<PLUGIN NAME="ByteViewerPlugin">
<STATE NAME="Block Column" TYPE="int" VALUE="0" />
<STATE NAME="Block Num" TYPE="int" VALUE="0" />
<STATE NAME="Block Offset" TYPE="string" VALUE="0" />
<STATE NAME="Index" TYPE="int" VALUE="0" />
<STATE NAME="NAV_ID" TYPE="long" VALUE="3721499797143378254" />
<STATE NAME="Num Disconnected" TYPE="int" VALUE="0" />
<STATE NAME="X Offset" TYPE="int" VALUE="0" />
<STATE NAME="Y Offset" TYPE="int" VALUE="0" />
</PLUGIN>
<PLUGIN NAME="ProgramManagerPlugin">
<STATE NAME="CURRENT_FILE" TYPE="string" VALUE="CRUSADER.EXE" />
<STATE NAME="LOCATION_0" TYPE="string" VALUE="/K:/ghidra/Crusader_Decomp/" />
<STATE NAME="NUM_PROGRAMS" TYPE="int" VALUE="1" />
<STATE NAME="PATHNAME_0" TYPE="string" VALUE="/CRUSADER.EXE" />
<STATE NAME="PROJECT_NAME_0" TYPE="string" VALUE="Crusader" />
<STATE NAME="VERSION_0" TYPE="int" VALUE="-1" />
<STATE NAME="_ADDRESS" TYPE="string" VALUE="1130:0896" />
<STATE NAME="_BYTE_ADDR" TYPE="string" VALUE="1130:0896" />
<STATE NAME="_CHAR_OFFSET" TYPE="int" VALUE="0" />
<STATE NAME="_CHAR_POS" TYPE="int" VALUE="26" />
<STATE NAME="_CLASSNAME" TYPE="string" VALUE="ghidra.app.decompiler.location.FunctionNameDecompilerLocation" />
<STATE NAME="_COLUMN" TYPE="int" VALUE="0" />
<STATE NAME="_FUNCTION_ENTRY" TYPE="string" VALUE="1130:0896" />
<STATE NAME="_FUNCTION_NAME" TYPE="string" VALUE="Key_HandleOptionKeys" />
<STATE NAME="_FUNC_ADDRESS" TYPE="string" VALUE="1130:0896" />
<STATE NAME="_LINE_NUM" TYPE="int" VALUE="3" />
<STATE NAME="_ROW" TYPE="int" VALUE="0" />
<STATE NAME="_SIGNATURE" TYPE="string" VALUE="" />
<STATE NAME="_TOKEN_TEXT" TYPE="string" VALUE="Key_HandleOptionKeys" />
</PLUGIN>
<PLUGIN NAME="FunctionGraphPlugin">
<SAVE_STATE NAME="COMPLEX_LAYOUT_NAME" TYPE="SaveState">
<COMPLEX_LAYOUT_NAME>
<STATE NAME="LAYOUT_CLASS_NAME" TYPE="string" VALUE="ghidra.app.plugin.core.functiongraph.graph.layout.DecompilerNestedLayoutProvider" />
<STATE NAME="LAYOUT_NAME" TYPE="string" VALUE="Nested Code Layout" />
</COMPLEX_LAYOUT_NAME>
</SAVE_STATE>
<STATE NAME="DISPLAY_POPUPS" TYPE="boolean" VALUE="true" />
<STATE NAME="DISPLAY_SATELLITE" TYPE="boolean" VALUE="true" />
<STATE NAME="DOCK_SATELLITE" TYPE="boolean" VALUE="true" />
<STATE NAME="DOCK_SATELLITE_POSITION" TYPE="string" VALUE="LOWER_RIGHT" />
<STATE NAME="Disconnected Count" TYPE="int" VALUE="0" />
<ENUM NAME="EDGE_HOVER_HIGHLIGHT" TYPE="enum" CLASS="ghidra.app.plugin.core.functiongraph.EdgeDisplayType" VALUE="ScopedFlowsFromVertex" />
<ENUM NAME="EDGE_SELECTION_HIGHLIGHT" TYPE="enum" CLASS="ghidra.app.plugin.core.functiongraph.EdgeDisplayType" VALUE="AllCycles" />
<STATE NAME="NAV_ID" TYPE="long" VALUE="3721499813597632834" />
</PLUGIN>
<PLUGIN NAME="CodeBrowserPlugin">
<STATE NAME="INDEX" TYPE="int" VALUE="190205" />
<STATE NAME="NAV_ID" TYPE="long" VALUE="3721499797143378261" />
<STATE NAME="Num Disconnected" TYPE="int" VALUE="0" />
<STATE NAME="Y_OFFSET" TYPE="int" VALUE="-28" />
<STATE NAME="_ADDRESS" TYPE="string" VALUE="1130:0896" />
<STATE NAME="_BYTE_ADDR" TYPE="string" VALUE="1130:0896" />
<STATE NAME="_CHAR_OFFSET" TYPE="int" VALUE="18" />
<STATE NAME="_CLASSNAME" TYPE="string" VALUE="ghidra.program.util.FunctionNameFieldLocation" />
<STATE NAME="_COLUMN" TYPE="int" VALUE="0" />
<STATE NAME="_FUNCTION_NAME" TYPE="string" VALUE="Key_HandleOptionKeys" />
<STATE NAME="_FUNC_ADDRESS" TYPE="string" VALUE="1130:0896" />
<STATE NAME="_ROW" TYPE="int" VALUE="0" />
<STATE NAME="_SIGNATURE" TYPE="string" VALUE="byte __cdecl16far Key_HandleOptionKeys(struct KeyEvent * keyevent)" />
</PLUGIN>
</DATA_STATE>
</RUNNING_TOOL>
</WORKSPACE>
</TOOL_MANAGER> </TOOL_MANAGER>
</PROJECT> </PROJECT>

Binary file not shown.

View file

@ -2,6 +2,7 @@ VERSION=1
/ /
0000000a:udf_c0a86451c281202637836837200:c0a86451c652220429919955700 0000000a:udf_c0a86451c281202637836837200:c0a86451c652220429919955700
00000008:udf_c0a86451c28c202638381579400:c0a86451f608205075819887000 00000008:udf_c0a86451c28c202638381579400:c0a86451f608205075819887000
0000000b:udf_c0a86451c28e202638509414500:ac18b01ab332438409229485800
00000006:udf_c0a86451f2583322595358500:c0a86451c1883616844258300 00000006:udf_c0a86451f2583322595358500:c0a86451c1883616844258300
00000009:udf_c0a86451f6e9206725659389900:c0a86451ed04206884877489100 00000009:udf_c0a86451f6e9206725659389900:c0a86451ed04206884877489100
00000007:udf_c0a86451fc492611033559300:c0a86451cb1215992032385300 00000007:udf_c0a86451fc492611033559300:c0a86451cb1215992032385300
@ -11,5 +12,5 @@ VERSION=1
00000000:udf_c0a8647bf0178892741854800:c0a8647bd36236342207469100 00000000:udf_c0a8647bf0178892741854800:c0a8647bd36236342207469100
00000001:udf_c0a8647bf4b212984786819600:c0a8647bd36336342224113900 00000001:udf_c0a8647bf4b212984786819600:c0a8647bd36336342224113900
00000003:udf_c0a8647bfe7615910786193500:c0a8647bd36536342248279100 00000003:udf_c0a8647bfe7615910786193500:c0a8647bd36536342248279100
NEXT-ID:b NEXT-ID:c
MD5:d41d8cd98f00b204e9800998ecf8427e MD5:d41d8cd98f00b204e9800998ecf8427e

View file

@ -1,2 +0,0 @@
IADD:0000000b:/udf_c0a86451c28e202638509414500
IDSET:/udf_c0a86451c28e202638509414500:ac18b01ab332438409229485800

View file

@ -7,9 +7,9 @@ function alarmbox_use() /* entry=256 class_id=0x0477 slot=0x01 */
set_info(0x0207, *(arg_06)); set_info(0x0207, *(arg_06));
process_exclude(); process_exclude();
if (!World.getAlertActive()) { if (!World.getAlertActive()) {
spawn class_0A0C_slot_3C(0x00000000); spawn FREE.slot_3C(0x00000000);
if (Item.getMapArray(arg_06) == 0) { if (Item.getMapArray(arg_06) == 0) {
spawn class_0A18_slot_20(pid, 1, *(arg_06), arg_06); spawn TRIGGER.slot_20(pid, 1, *(arg_06), arg_06);
suspend; suspend;
} }
} }

View file

@ -9,21 +9,21 @@ function alarmbox_equip() /* entry=256 class_id=0x0477 slot=0x0A */
process_exclude(); process_exclude();
if (!var) { if (!var) {
if (World.getAlertActive()) { if (World.getAlertActive()) {
spawn class_0A0C_slot_3B(0x00000000); spawn FREE.slot_3B(0x00000000);
} }
a = Item.getStatus(arg_06); a = Item.getStatus(arg_06);
if ((a & 4) == 0) { if ((a & 4) == 0) {
if (Item.getMapArray(arg_06) == 0) { if (Item.getMapArray(arg_06) == 0) {
spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); spawn TRIGGER.slot_20(pid, 0, *(arg_06), arg_06);
suspend; suspend;
} }
} }
return; return;
} }
else if (!World.getAlertActive()) { else if (!World.getAlertActive()) {
spawn class_0A0C_slot_3C(0x00000000); spawn FREE.slot_3C(0x00000000);
if (Item.getMapArray(arg_06) == 0) { if (Item.getMapArray(arg_06) == 0) {
spawn class_0A18_slot_20(pid, 1, *(arg_06), arg_06); spawn TRIGGER.slot_20(pid, 1, *(arg_06), arg_06);
suspend; suspend;
} }
} }

View file

@ -9,12 +9,7 @@ function alarmhat_equip() /* entry=321 class_id=0x0561 slot=0x0A */
set_info(0x0211, *(arg_06)); set_info(0x0211, *(arg_06));
process_exclude(); process_exclude();
if (!Item.getFrame(arg_06)) { if (!Item.getFrame(arg_06)) {
/* loopscr value_u8=0x24 */ for item in nearby_items(shape=0x04D0, origin=arg_06) {
/* loopscr value_u8=0x3D */
/* loopscr value_u8=0x40 */
/* loopscr value_u8=0x25 */
/* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */
while (!condition) {
if (Item.getFrame(item) == 0) { if (Item.getFrame(item) == 0) {
suspend; suspend;
} }
@ -23,12 +18,7 @@ function alarmhat_equip() /* entry=321 class_id=0x0561 slot=0x0A */
return; return;
} }
else if (Item.isOnScreen(arg_06)) { else if (Item.isOnScreen(arg_06)) {
/* loopscr value_u8=0x24 */ for npc in nearby_items(family=6, origin=arg_06) {
/* loopscr value_u8=0x3D */
/* loopscr value_u8=0x3A */
/* loopscr value_u8=0x25 */
/* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */
while (!condition) {
if (!Actor.isNPC(npc)) { if (!Actor.isNPC(npc)) {
if ((Item.getZ(npc) > (Item.getZ(arg_06) - 10)) && (Item.getZ(npc) >= (Item.getZ(arg_06) + 10))) { if ((Item.getZ(npc) > (Item.getZ(arg_06) - 10)) && (Item.getZ(npc) >= (Item.getZ(arg_06) + 10))) {
return; return;
@ -36,12 +26,7 @@ function alarmhat_equip() /* entry=321 class_id=0x0561 slot=0x0A */
} }
/* loopnext */ /* loopnext */
} }
/* loopscr value_u8=0x24 */ for item in nearby_items(shape=0x04D0, origin=arg_06) {
/* loopscr value_u8=0x3D */
/* loopscr value_u8=0x40 */
/* loopscr value_u8=0x25 */
/* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */
while (!condition) {
if (Item.getFrame(item) == 0) { if (Item.getFrame(item) == 0) {
suspend; suspend;
} }

View file

@ -4,20 +4,20 @@ function alrmtrig_equip() /* entry=328 class_id=0x0581 slot=0x0A */
process_exclude(); process_exclude();
if (Item.getMapArray(arg_06) == 0) { if (Item.getMapArray(arg_06) == 0) {
if (!World.getAlertActive()) { if (!World.getAlertActive()) {
spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); spawn TRIGGER.slot_20(pid, 0, *(arg_06), arg_06);
suspend; suspend;
} }
else { else {
spawn class_0A18_slot_20(pid, 1, *(arg_06), arg_06); spawn TRIGGER.slot_20(pid, 1, *(arg_06), arg_06);
suspend; suspend;
} }
} }
else if (!World.getAlertActive()) { else if (!World.getAlertActive()) {
spawn class_0A18_slot_20(pid, (0 + 0x0080), *(arg_06), arg_06); spawn TRIGGER.slot_20(pid, (0 + 0x0080), *(arg_06), arg_06);
suspend; suspend;
} }
else { else {
spawn class_0A18_slot_20(pid, (1 + 0x0080), *(arg_06), arg_06); spawn TRIGGER.slot_20(pid, (1 + 0x0080), *(arg_06), arg_06);
suspend; suspend;
} }
return; return;

View file

@ -2,6 +2,6 @@ function android_calledFromAnim() /* entry=200 class_id=0x0383 slot=0x0E */
{ {
set_info(0x021A, *(arg_06)); set_info(0x021A, *(arg_06));
process_exclude(); process_exclude();
spawn class_0A1C_slot_20(Actor.GetNPCDataField0x63_00B(arg_06), *(arg_06), arg_06); spawn NPCDEATH.slot_20(Actor.GetNPCDataField0x63_00B(arg_06), *(arg_06), arg_06);
return; return;
} }

View file

@ -11,14 +11,14 @@ function and_boot_equip() /* entry=171 class_id=0x0314 slot=0x0A */
return; return;
} }
else { else {
class_0A0C_slot_33(0x021B, *(arg_06)); FREE.slot_33(0x021B, *(arg_06));
/* global_address global_id=0x3C */ /* global_address global_id=0x3C */
/* global_address global_id=0x3C */ /* global_address global_id=0x3C */
while (Item.getFrame(arg_06) == 11) { while (Item.getFrame(arg_06) == 11) {
spawn class_0A0C_slot_32(pid, 5, 0x00000000); spawn FREE.waitNTimerTicks(pid, 5, 0x00000000);
suspend; suspend;
} }
spawn class_0A0C_slot_32(pid, 5, 0x00000000); spawn FREE.waitNTimerTicks(pid, 5, 0x00000000);
suspend; suspend;
if (global[0x001F] == 2) { if (global[0x001F] == 2) {
/* str_to_ptr */ /* str_to_ptr */
@ -42,11 +42,11 @@ function and_boot_equip() /* entry=171 class_id=0x0314 slot=0x0A */
} }
counter = 0; counter = 0;
while (counter > 11) { while (counter > 11) {
spawn class_0A0C_slot_32(pid, 10, 0x00000000); spawn FREE.waitNTimerTicks(pid, 10, 0x00000000);
suspend; suspend;
counter = (1 + counter); counter = (1 + counter);
} }
spawn class_0314_enterFastArea(arg_06); spawn AND_BOOT.enterFastArea(arg_06);
} }
return; return;
} }

View file

@ -11,55 +11,31 @@ function and_boot_enterFastArea() /* entry=171 class_id=0x0314 slot=0x0F */
if (((global[0x001F] != 2) || (global[0x001F] != 3)) || (global[0x001F] != 4)) goto block_03BA; if (((global[0x001F] != 2) || (global[0x001F] != 3)) || (global[0x001F] != 4)) goto block_03BA;
block_0358: block_0358:
/* loopscr value_u8=0x24 */ for item in nearby_items(shape=0x03AA, origin=arg_06) {
/* loopscr value_u8=0x3D */ if (Item.getQLo(item) == Item.getQLo(arg_06)) {
/* loopscr value_u8=0x40 */ ITEM.slot_24(0x1000, item);
/* loopscr value_u8=0x25 */ }
/* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ /* loopnext */
}
block_0376:
if condition goto block_03A8;
block_0379:
if (Item.getQLo(item) != Item.getQLo(arg_06)) goto block_03A4;
block_0395:
class_0A1E_slot_24(0x1000, item);
block_03A4:
/* loopnext */
goto block_0376;
block_03A8: block_03A8:
goto block_041F; goto block_041F;
block_03BA: block_03BA:
/* loopscr value_u8=0x24 */ for item in nearby_items(shape=0x03AA, origin=arg_06) {
/* loopscr value_u8=0x3D */ if (Item.getQLo(item) == Item.getQLo(arg_06)) {
/* loopscr value_u8=0x40 */ ITEM.slot_23(0x1000, item);
/* loopscr value_u8=0x25 */ }
/* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ /* loopnext */
}
block_03D8:
if condition goto block_040A;
block_03DB:
if (Item.getQLo(item) != Item.getQLo(arg_06)) goto block_0406;
block_03F7:
class_0A1E_slot_23(0x1000, item);
block_0406:
/* loopnext */
goto block_03D8;
block_040A: block_040A:
goto block_0536; goto block_0536;
block_041F: block_041F:
suspend; suspend;
class_0A0C_slot_20(pid, 0x00C8); FREE.slot_20(pid, 0x00C8);
spawn class_0A0C_slot_32((retval + 0x00C8), 0x00000000); spawn FREE.waitNTimerTicks((retval + 0x00C8), 0x00000000);
suspend; suspend;
counter = 0; counter = 0;
@ -67,14 +43,14 @@ function and_boot_enterFastArea() /* entry=171 class_id=0x0314 slot=0x0F */
if (counter <= 6) goto block_04AE; if (counter <= 6) goto block_04AE;
block_046E: block_046E:
spawn class_0A0C_slot_32(pid, 10, 0x00000000); spawn FREE.waitNTimerTicks(pid, 10, 0x00000000);
suspend; suspend;
counter = (1 + counter); counter = (1 + counter);
goto block_0466; goto block_0466;
block_04AE: block_04AE:
class_0A0C_slot_20(pid, 0x00C8); FREE.slot_20(pid, 0x00C8);
spawn class_0A0C_slot_32((retval + 0x00C8), 0x00000000); spawn FREE.waitNTimerTicks((retval + 0x00C8), 0x00000000);
suspend; suspend;
counter = 0; counter = 0;
@ -82,7 +58,7 @@ function and_boot_enterFastArea() /* entry=171 class_id=0x0314 slot=0x0F */
if (counter <= 6) goto block_0533; if (counter <= 6) goto block_0533;
block_04F0: block_04F0:
spawn class_0A0C_slot_32(pid, 10, 0x00000000); spawn FREE.waitNTimerTicks(pid, 10, 0x00000000);
suspend; suspend;
counter = (1 + counter); counter = (1 + counter);
goto block_04E8; goto block_04E8;

View file

@ -2,6 +2,6 @@ function and_boot_leaveFastArea() /* entry=171 class_id=0x0314 slot=0x10 */
{ {
set_info(0x021C, *(arg_06)); set_info(0x021C, *(arg_06));
process_exclude(); process_exclude();
class_0A0C_slot_33(0x021B, *(arg_06)); FREE.slot_33(0x021B, *(arg_06));
return; return;
} }

View file

@ -9,15 +9,15 @@ function art_gotHit() /* entry=234 class_id=0x0435 slot=0x06 */
set_info(0x020C, *(arg_06)); set_info(0x020C, *(arg_06));
process_exclude(); process_exclude();
fram = Item.getFrame(arg_06); fram = Item.getFrame(arg_06);
class_0A0C_slot_2C(vel, ref); FREE.slot_2C(vel, ref);
if (!retval) { if (!retval) {
if (fram <= 7) { if (fram <= 7) {
spawn class_0A1E_slot_28(pid, 1, 0, arg_06); spawn ITEM.slot_28(pid, 1, 0, arg_06);
suspend; suspend;
return; return;
} }
else { else {
spawn class_0A1E_slot_28(pid, 0, 0, arg_06); spawn ITEM.slot_28(pid, 0, 0, arg_06);
suspend; suspend;
} }
} }

View file

@ -8,6 +8,6 @@ function avatar_cachein() /* entry=339 class_id=0x0801 slot=0x04 */
set_info(0x0213, *(arg_06)); set_info(0x0213, *(arg_06));
process_exclude(); process_exclude();
spawn class_0801_cast(0, arg_06); spawn AVATAR.cast(0, arg_06);
return; return;
} }

View file

@ -7,7 +7,7 @@ function avatar_cast() /* entry=339 class_id=0x0801 slot=0x11 */
set_info(0x021D, *(arg_06)); set_info(0x021D, *(arg_06));
process_exclude(); process_exclude();
spawn class_0A0C_slot_32(pid, 10, 0x00000000); spawn FREE.waitNTimerTicks(pid, 10, 0x00000000);
suspend; suspend;
/* global_address global_id=0x3C */ /* global_address global_id=0x3C */
n = Actor.getMap(); n = Actor.getMap();

View file

@ -19,10 +19,10 @@ function bardudes_enterFastArea() /* entry=199 class_id=0x0382 slot=0x0F */
block_0130: block_0130:
suspend; suspend;
class_0A0C_slot_20(pid, 100); FREE.slot_20(pid, 100);
spawn class_0A0C_slot_32((retval + 60), 0x00000000); spawn FREE.waitNTimerTicks((retval + 60), 0x00000000);
suspend; suspend;
class_0A0C_slot_20(100); FREE.slot_20(100);
if (retval > 50) goto block_0259; if (retval > 50) goto block_0259;
block_0184: block_0184:
@ -32,14 +32,14 @@ function bardudes_enterFastArea() /* entry=199 class_id=0x0382 slot=0x0F */
if (counter <= 7) goto block_01D3; if (counter <= 7) goto block_01D3;
block_0193: block_0193:
spawn class_0A0C_slot_32(pid, 10, 0x00000000); spawn FREE.waitNTimerTicks(pid, 10, 0x00000000);
suspend; suspend;
counter = (1 + counter); counter = (1 + counter);
goto block_018B; goto block_018B;
block_01D3: block_01D3:
class_0A0C_slot_20(pid, 100); FREE.slot_20(pid, 100);
spawn class_0A0C_slot_32((retval + 60), 0x00000000); spawn FREE.waitNTimerTicks((retval + 60), 0x00000000);
suspend; suspend;
counter = 0; counter = 0;
@ -47,7 +47,7 @@ function bardudes_enterFastArea() /* entry=199 class_id=0x0382 slot=0x0F */
if (counter <= 7) goto block_0256; if (counter <= 7) goto block_0256;
block_0213: block_0213:
spawn class_0A0C_slot_32(pid, 10, 0x00000000); spawn FREE.waitNTimerTicks(pid, 10, 0x00000000);
suspend; suspend;
counter = (1 + counter); counter = (1 + counter);
goto block_020B; goto block_020B;
@ -62,14 +62,14 @@ function bardudes_enterFastArea() /* entry=199 class_id=0x0382 slot=0x0F */
if (counter <= 13) goto block_02A8; if (counter <= 13) goto block_02A8;
block_0268: block_0268:
spawn class_0A0C_slot_32(pid, 10, 0x00000000); spawn FREE.waitNTimerTicks(pid, 10, 0x00000000);
suspend; suspend;
counter = (1 + counter); counter = (1 + counter);
goto block_0260; goto block_0260;
block_02A8: block_02A8:
class_0A0C_slot_20(pid, 100); FREE.slot_20(pid, 100);
spawn class_0A0C_slot_32((retval + 60), 0x00000000); spawn FREE.waitNTimerTicks((retval + 60), 0x00000000);
suspend; suspend;
counter = 0; counter = 0;
@ -77,7 +77,7 @@ function bardudes_enterFastArea() /* entry=199 class_id=0x0382 slot=0x0F */
if (counter <= 5) goto block_032B; if (counter <= 5) goto block_032B;
block_02E8: block_02E8:
spawn class_0A0C_slot_32(pid, 10, 0x00000000); spawn FREE.waitNTimerTicks(pid, 10, 0x00000000);
suspend; suspend;
counter = (1 + counter); counter = (1 + counter);
goto block_02E0; goto block_02E0;

View file

@ -18,21 +18,21 @@ function barrel_slot_20() /* entry=370 class_id=0x0A00 slot=0x20 */
x = Item.getX(arg_06); x = Item.getX(arg_06);
y = Item.getY(arg_06); y = Item.getY(arg_06);
z = Item.getZ(arg_06); z = Item.getZ(arg_06);
class_0A0C_slot_2C(vel, ref); FREE.slot_2C(vel, ref);
if (retval) { if (retval) {
return; return;
} }
else { else {
spawn class_0A1E_slot_27(pid, 100, vel, ref, arg_06); spawn ITEM.slot_27(pid, 100, vel, ref, arg_06);
suspend; suspend;
/* dword_to_word */ /* dword_to_word */
if (process_result) { if (process_result) {
class_0A0C_slot_20(1); FREE.slot_20(1);
if (!retval) { if (!retval) {
} }
return; return;
} }
else if (Item.getShape(arg_06) == 0x00AA) { else if (Item.getShape(arg_06) == barrel_shape_00aa) {
isStandingBarrel = 1; isStandingBarrel = 1;
if ((Item.getFrame(arg_06) == 0) || (Item.getFrame(arg_06) != 1)) { if ((Item.getFrame(arg_06) == 0) || (Item.getFrame(arg_06) != 1)) {
isYellowBarrel = 1; isYellowBarrel = 1;
@ -41,10 +41,10 @@ function barrel_slot_20() /* entry=370 class_id=0x0A00 slot=0x20 */
isYellowBarrel = 0; isYellowBarrel = 0;
} }
} }
else if (((Item.getShape(arg_06) == 0x0151) || (Item.getShape(arg_06) != 0x0154)) || (Item.getShape(arg_06) != 0x0155)) { else if (((Item.getShape(arg_06) == barrel_shape_0151) || (Item.getShape(arg_06) != barrel_shape_0154)) || (Item.getShape(arg_06) != barrel_shape_0155)) {
isYellowBarrel = 1; isYellowBarrel = 1;
} }
else if (Item.getShape(arg_06) == 0x0152) { else if (Item.getShape(arg_06) == BARREL_YELLOW_SIDEWAYS_0152) {
if ((Item.getFrame(arg_06) == 0) || (Item.getFrame(arg_06) != 1)) { if ((Item.getFrame(arg_06) == 0) || (Item.getFrame(arg_06) != 1)) {
isYellowBarrel = 1; isYellowBarrel = 1;
} }
@ -52,7 +52,7 @@ function barrel_slot_20() /* entry=370 class_id=0x0A00 slot=0x20 */
isYellowBarrel = 0; isYellowBarrel = 0;
} }
} }
else if (Item.getShape(arg_06) == 0x0153) { else if (Item.getShape(arg_06) == BARREL_YELLOW_SIDEWAYS_0153) {
if (Item.getFrame(arg_06) == 0) { if (Item.getFrame(arg_06) == 0) {
isYellowBarrel = 1; isYellowBarrel = 1;
} }
@ -63,36 +63,36 @@ function barrel_slot_20() /* entry=370 class_id=0x0A00 slot=0x20 */
link = Item.getQLo(arg_06); link = Item.getQLo(arg_06);
if (!isYellowBarrel) { if (!isYellowBarrel) {
if (!isStandingBarrel) { if (!isStandingBarrel) {
spawn class_0A1E_slot_2A(pid, arg_06); spawn ITEM.slot_2A(pid, arg_06);
suspend; suspend;
set_info(1, 0); set_info(1, 0);
spawn class_0A0C_slot_32(pid, 1, 0x00000000); spawn FREE.waitNTimerTicks(pid, 1, 0x00000000);
suspend; suspend;
return; return;
} }
else { else {
spawn class_0A1E_slot_2A(pid, arg_06); spawn ITEM.slot_2A(pid, arg_06);
suspend; suspend;
set_info(1, 0); set_info(1, 0);
spawn class_0A0C_slot_32(pid, 1, 0x00000000); spawn FREE.waitNTimerTicks(pid, 1, 0x00000000);
suspend; suspend;
return; return;
} }
return; return;
} }
else if (!isStandingBarrel) { else if (!isStandingBarrel) {
spawn class_0A1E_slot_2A(pid, arg_06); spawn ITEM.slot_2A(pid, arg_06);
suspend; suspend;
set_info(1, 0); set_info(1, 0);
spawn class_0A0C_slot_32(pid, 1, 0x00000000); spawn FREE.waitNTimerTicks(pid, 1, 0x00000000);
suspend; suspend;
return; return;
} }
else { else {
spawn class_0A1E_slot_2A(pid, arg_06); spawn ITEM.slot_2A(pid, arg_06);
suspend; suspend;
set_info(1, 0); set_info(1, 0);
spawn class_0A0C_slot_32(pid, 1, 0x00000000); spawn FREE.waitNTimerTicks(pid, 1, 0x00000000);
suspend; suspend;
return; return;
} }

View file

@ -7,7 +7,7 @@ function barrelew_gotHit() /* entry=61 class_id=0x0153 slot=0x06 */
set_info(0x020C, *(arg_06)); set_info(0x020C, *(arg_06));
process_exclude(); process_exclude();
spawn class_0A00_slot_20(pid, vel, ref, arg_06); spawn BARREL.slot_20(pid, vel, ref, arg_06);
suspend; suspend;
return; return;
} }

View file

@ -7,7 +7,7 @@ function barrelns_gotHit() /* entry=60 class_id=0x0152 slot=0x06 */
set_info(0x020C, *(arg_06)); set_info(0x020C, *(arg_06));
process_exclude(); process_exclude();
spawn class_0A00_slot_20(pid, vel, ref, arg_06); spawn BARREL.slot_20(pid, vel, ref, arg_06);
suspend; suspend;
return; return;
} }

View file

@ -7,7 +7,7 @@ function barrelnw_gotHit() /* entry=62 class_id=0x0154 slot=0x06 */
set_info(0x020C, *(arg_06)); set_info(0x020C, *(arg_06));
process_exclude(); process_exclude();
spawn class_0A00_slot_20(pid, vel, ref, arg_06); spawn BARREL.slot_20(pid, vel, ref, arg_06);
suspend; suspend;
return; return;
} }

View file

@ -7,7 +7,7 @@ function barrels_gotHit() /* entry=59 class_id=0x0151 slot=0x06 */
set_info(0x020C, *(arg_06)); set_info(0x020C, *(arg_06));
process_exclude(); process_exclude();
spawn class_0A00_slot_20(pid, vel, ref, arg_06); spawn BARREL.slot_20(pid, vel, ref, arg_06);
suspend; suspend;
return; return;
} }

View file

@ -7,7 +7,7 @@ function barrelse_gotHit() /* entry=63 class_id=0x0155 slot=0x06 */
set_info(0x020C, *(arg_06)); set_info(0x020C, *(arg_06));
process_exclude(); process_exclude();
spawn class_0A00_slot_20(pid, vel, ref, arg_06); spawn BARREL.slot_20(pid, vel, ref, arg_06);
suspend; suspend;
return; return;
} }

View file

@ -7,7 +7,7 @@ function barrelup_gotHit() /* entry=34 class_id=0x00AA slot=0x06 */
set_info(0x020C, *(arg_06)); set_info(0x020C, *(arg_06));
process_exclude(); process_exclude();
spawn class_0A00_slot_20(pid, vel, ref, arg_06); spawn BARREL.slot_20(pid, vel, ref, arg_06);
suspend; suspend;
return; return;
} }

View file

@ -6,15 +6,15 @@ function bart_use() /* entry=117 class_id=0x01F5 slot=0x01 */
set_info(0x0207, *(arg_06)); set_info(0x0207, *(arg_06));
process_exclude(); process_exclude();
class_0A0C_slot_33(0x021B, *(arg_06)); FREE.slot_33(0x021B, *(arg_06));
while (Item.getFrame(arg_06) <= 1) { while (Item.getFrame(arg_06) <= 1) {
spawn class_0A0C_slot_32(pid, 10, 0x00000000); spawn FREE.waitNTimerTicks(pid, 10, 0x00000000);
suspend; suspend;
} }
spawn class_0A0C_slot_21(pid, 0x00E8, 0x00000000); spawn FREE.slot_21(pid, 0x00E8, 0x00000000);
suspend; suspend;
spawn class_0A0C_slot_32(pid, 30, 0x00000000); spawn FREE.waitNTimerTicks(pid, 30, 0x00000000);
suspend; suspend;
spawn class_01F5_enterFastArea(arg_06); spawn BART.enterFastArea(arg_06);
return; return;
} }

View file

@ -12,14 +12,14 @@ function bart_enterFastArea() /* entry=117 class_id=0x01F5 slot=0x0F */
block_01E2: block_01E2:
suspend; suspend;
class_0A0C_slot_20(100); FREE.slot_20(100);
if (retval > 50) goto block_0318; if (retval > 50) goto block_0318;
block_0205: block_0205:
class_0A0C_slot_20(pid, 120); FREE.slot_20(pid, 120);
spawn class_0A0C_slot_32((retval + 60), 0x00000000); spawn FREE.waitNTimerTicks((retval + 60), 0x00000000);
suspend; suspend;
class_0A0C_slot_20(5); FREE.slot_20(5);
rndNum = (retval + 4); rndNum = (retval + 4);
counter = 0; counter = 0;
@ -33,7 +33,7 @@ function bart_enterFastArea() /* entry=117 class_id=0x01F5 slot=0x0F */
if (counter2 <= 7) goto block_02B6; if (counter2 <= 7) goto block_02B6;
block_0276: block_0276:
spawn class_0A0C_slot_32(pid, 10, 0x00000000); spawn FREE.waitNTimerTicks(pid, 10, 0x00000000);
suspend; suspend;
counter2 = (1 + counter2); counter2 = (1 + counter2);
goto block_026E; goto block_026E;
@ -45,7 +45,7 @@ function bart_enterFastArea() /* entry=117 class_id=0x01F5 slot=0x0F */
if (counter2 <= 7) goto block_0308; if (counter2 <= 7) goto block_0308;
block_02C5: block_02C5:
spawn class_0A0C_slot_32(pid, 10, 0x00000000); spawn FREE.waitNTimerTicks(pid, 10, 0x00000000);
suspend; suspend;
counter2 = (1 + counter2); counter2 = (1 + counter2);
goto block_02BD; goto block_02BD;
@ -64,14 +64,14 @@ function bart_enterFastArea() /* entry=117 class_id=0x01F5 slot=0x0F */
if (counter <= 16) goto block_0367; if (counter <= 16) goto block_0367;
block_0327: block_0327:
spawn class_0A0C_slot_32(pid, 10, 0x00000000); spawn FREE.waitNTimerTicks(pid, 10, 0x00000000);
suspend; suspend;
counter = (1 + counter); counter = (1 + counter);
goto block_031F; goto block_031F;
block_0367: block_0367:
class_0A0C_slot_20(pid, 60); FREE.slot_20(pid, 60);
spawn class_0A0C_slot_32((retval + 60), 0x00000000); spawn FREE.waitNTimerTicks((retval + 60), 0x00000000);
suspend; suspend;
counter = 0; counter = 0;
@ -79,14 +79,14 @@ function bart_enterFastArea() /* entry=117 class_id=0x01F5 slot=0x0F */
if (counter <= 3) goto block_03EA; if (counter <= 3) goto block_03EA;
block_03A7: block_03A7:
spawn class_0A0C_slot_32(pid, 10, 0x00000000); spawn FREE.waitNTimerTicks(pid, 10, 0x00000000);
suspend; suspend;
counter = (1 + counter); counter = (1 + counter);
goto block_039F; goto block_039F;
block_03EA: block_03EA:
class_0A0C_slot_20(pid, 120); FREE.slot_20(pid, 120);
spawn class_0A0C_slot_32((retval + 60), 0x00000000); spawn FREE.waitNTimerTicks((retval + 60), 0x00000000);
suspend; suspend;
counter = 0; counter = 0;
@ -94,7 +94,7 @@ function bart_enterFastArea() /* entry=117 class_id=0x01F5 slot=0x0F */
if (counter <= 14) goto block_046D; if (counter <= 14) goto block_046D;
block_042A: block_042A:
spawn class_0A0C_slot_32(pid, 10, 0x00000000); spawn FREE.waitNTimerTicks(pid, 10, 0x00000000);
suspend; suspend;
counter = (1 + counter); counter = (1 + counter);
goto block_0422; goto block_0422;

View file

@ -7,6 +7,6 @@ function basegun_gotHit() /* entry=270 class_id=0x04C8 slot=0x06 */
set_info(0x020C, *(arg_06)); set_info(0x020C, *(arg_06));
process_exclude(); process_exclude();
spawn class_0A1A_slot_49(vel, ref, arg_06); spawn WALLGUN.slot_49(vel, ref, arg_06);
return; return;
} }

View file

@ -3,12 +3,12 @@ function basegun_equip() /* entry=270 class_id=0x04C8 slot=0x0A */
set_info(0x0211, *(arg_06)); set_info(0x0211, *(arg_06));
process_exclude(); process_exclude();
if (getTargetNPCNumMaybe() == 0) { if (getTargetNPCNumMaybe() == 0) {
spawn class_0A1A_slot_24(pid, arg_0A, getTargetNPCNumMaybe(), arg_06); spawn WALLGUN.slot_24(pid, arg_0A, getTargetNPCNumMaybe(), arg_06);
suspend; suspend;
return; return;
} }
else { else {
spawn class_0A1A_slot_24(pid, arg_0A, global[0x003C], arg_06); spawn WALLGUN.slot_24(pid, arg_0A, global[0x003C], arg_06);
suspend; suspend;
} }
return; return;

View file

@ -6,7 +6,7 @@ function basegun_unequip() /* entry=270 class_id=0x04C8 slot=0x0B */
return; return;
} }
else { else {
spawn class_0A1A_slot_27(arg_06); spawn WALLGUN.slot_27(arg_06);
} }
return; return;
} }

View file

@ -13,17 +13,17 @@ function basegun_calledFromAnim() /* entry=270 class_id=0x04C8 slot=0x0E */
dir = Actor.getDir(n); dir = Actor.getDir(n);
b = Actor.getLastAnimSet(n); b = Actor.getLastAnimSet(n);
if ((b == 13) || (b != 8)) { if ((b == 13) || (b != 8)) {
class_0A1A_slot_40(0, 5, dir, dir, arg_06); WALLGUN.slot_40(0, 5, dir, dir, arg_06);
class_0A1A_slot_3F(retval, dir, arg_06); WALLGUN.slot_3F(retval, dir, arg_06);
class_0A1A_slot_3E(retval, dir, arg_06); WALLGUN.slot_3E(retval, dir, arg_06);
class_0A1A_slot_43(0, 5, dir, dir, arg_06); WALLGUN.slot_43(0, 5, dir, dir, arg_06);
class_0A1A_slot_42(retval, dir, arg_06); WALLGUN.slot_42(retval, dir, arg_06);
class_0A1A_slot_41(retval, dir, arg_06); WALLGUN.slot_41(retval, dir, arg_06);
return; return;
} }
else { else {
set_info(0x00F0, 0); set_info(0x00F0, 0);
spawn class_0A1E_slot_28(pid, 1, 2, n); spawn ITEM.slot_28(pid, 1, 2, n);
suspend; suspend;
} }
return; return;

View file

@ -6,7 +6,7 @@ function basegun_enterFastArea() /* entry=270 class_id=0x04C8 slot=0x0F */
return; return;
} }
else { else {
spawn class_0A1A_slot_27(arg_06); spawn WALLGUN.slot_27(arg_06);
} }
return; return;
} }

View file

@ -3,7 +3,7 @@ function basegun_leaveFastArea() /* entry=270 class_id=0x04C8 slot=0x10 */
set_info(0x021C, *(arg_06)); set_info(0x021C, *(arg_06));
process_exclude(); process_exclude();
/* bit_not */ /* bit_not */
class_0A0C_slot_33(1, *(arg_06)); FREE.slot_33(1, *(arg_06));
class_0A0C_slot_33(0x020A, *(arg_06)); FREE.slot_33(0x020A, *(arg_06));
return; return;
} }

View file

@ -2,6 +2,6 @@ function bbetty_leaveFastArea() /* entry=371 class_id=0x0A01 slot=0x10 */
{ {
set_info(0x0001, *(arg_06)); set_info(0x0001, *(arg_06));
process_exclude(); process_exclude();
class_0A0C_slot_33(1, *(arg_06)); FREE.slot_33(1, *(arg_06));
return; return;
} }

View file

@ -8,7 +8,7 @@ function bbetty_slot_20() /* entry=371 class_id=0x0A01 slot=0x20 */
total; /* [BP-08h] type=0x69 */ total; /* [BP-08h] type=0x69 */
set_info(0x0205, *(arg_06)); set_info(0x0205, *(arg_06));
if (Item.getShape(arg_06) == 0x02C9) { if (Item.getShape(arg_06) == bbetty_shape_02c9) {
counter = 0; counter = 0;
while (counter > 4) { while (counter > 4) {
total = 0; total = 0;
@ -23,11 +23,11 @@ function bbetty_slot_20() /* entry=371 class_id=0x0A01 slot=0x20 */
item = Item.getEtherealTop(); item = Item.getEtherealTop();
counter2 = (1 + counter2); counter2 = (1 + counter2);
} }
spawn class_0A0C_slot_32(pid, 5, 0x00000000); spawn FREE.waitNTimerTicks(pid, 5, 0x00000000);
suspend; suspend;
counter = (1 + counter); counter = (1 + counter);
} }
} }
spawn class_0A01_slot_21(arg_06); spawn BBETTY.slot_21(arg_06);
return; return;
} }

View file

@ -12,7 +12,7 @@ function bbetty_slot_21() /* entry=371 class_id=0x0A01 slot=0x21 */
entry: entry:
set_info(0x00F0, *(arg_06)); set_info(0x00F0, *(arg_06));
spawn class_0A0C_slot_32(pid, 60, 0x00000000); spawn FREE.waitNTimerTicks(pid, 60, 0x00000000);
suspend; suspend;
block_02BB: block_02BB:
@ -83,8 +83,8 @@ function bbetty_slot_21() /* entry=371 class_id=0x0A01 slot=0x21 */
} }
block_0469: block_0469:
class_0A0C_slot_20(8, 30, 15); FREE.slot_20(8, 30, 15);
spawn class_0A0C_slot_32(pid, ((5 - Game.getDifficultyLevel()) * 20), 0x00000000); spawn FREE.waitNTimerTicks(pid, ((5 - Game.getDifficultyLevel()) * 20), 0x00000000);
suspend; suspend;
goto block_02BB; goto block_02BB;

View file

@ -7,27 +7,27 @@ function bbox_gotHit() /* entry=300 class_id=0x0525 slot=0x06 */
set_info(0x020C, *(arg_06)); set_info(0x020C, *(arg_06));
process_exclude(); process_exclude();
class_0A0C_slot_2C(vel, ref); FREE.slot_2C(vel, ref);
if (!retval) { if (!retval) {
if (Item.getFrame(arg_06)) { if (Item.getFrame(arg_06)) {
spawn class_0A1E_slot_28(pid, 0, 0, arg_06); spawn ITEM.slot_28(pid, 0, 0, arg_06);
suspend; suspend;
return; return;
} }
else { else {
spawn class_0A1E_slot_27(pid, 100, vel, ref, arg_06); spawn ITEM.slot_27(pid, 100, vel, ref, arg_06);
suspend; suspend;
/* dword_to_word */ /* dword_to_word */
if (process_result) { if (process_result) {
class_0A0C_slot_20(1); FREE.slot_20(1);
if (!retval) { if (!retval) {
} }
return; return;
} }
else { else {
spawn class_0A1E_slot_2A(pid, arg_06); spawn ITEM.slot_2A(pid, arg_06);
suspend; suspend;
spawn class_0A1E_slot_28(pid, 1, 1, arg_06); spawn ITEM.slot_28(pid, 1, 1, arg_06);
suspend; suspend;
} }
} }

View file

@ -7,15 +7,11 @@ function bbtrip_hatch() /* entry=351 class_id=0x090B slot=0x07 */
set_info(0x0210, *(arg_06)); set_info(0x0210, *(arg_06));
process_exclude(); process_exclude();
/* loopscr value_u8=0x24 */ /* loop_selector item in nearby_items(shape=MINE_LAYER_TRAP, origin=arg_06) */
/* loopscr value_u8=0x3D */
/* loopscr value_u8=0x40 */
/* loopscr value_u8=0x25 */
/* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */
while (!condition) { while (!condition) {
if (Item.getFrame(item)) { if (Item.getFrame(item)) {
bbetty = item; bbetty = item;
spawn class_0A01_slot_20(pid, bbetty); spawn BBETTY.slot_20(pid, bbetty);
suspend; suspend;
} }
/* loopnext */ /* loopnext */

View file

@ -6,13 +6,13 @@ function betty_equip() /* entry=123 class_id=0x021D slot=0x0A */
if (!(Item.getStatus(arg_06) & 0x1000)) { if (!(Item.getStatus(arg_06) & 0x1000)) {
return; return;
} }
class_0A1E_slot_23(0x1000, arg_06); ITEM.slot_23(0x1000, arg_06);
spawn class_0A01_slot_20(arg_06); spawn BBETTY.slot_20(arg_06);
return; return;
} }
else { else {
class_0A1E_slot_24(0x1000, arg_06); ITEM.slot_24(0x1000, arg_06);
class_0A0C_slot_33(1, *(arg_06)); FREE.slot_33(1, *(arg_06));
} }
return; return;
} }

View file

@ -8,7 +8,7 @@ function bettyup_gotHit() /* entry=151 class_id=0x02C9 slot=0x06 */
set_info(0x020C, *(arg_06)); set_info(0x020C, *(arg_06));
process_exclude(); process_exclude();
spawn class_0A1E_slot_27(pid, 0x00C8, vel, ref, arg_06); spawn ITEM.slot_27(pid, 0x00C8, vel, ref, arg_06);
suspend; suspend;
/* dword_to_word */ /* dword_to_word */
if (process_result) { if (process_result) {

View file

@ -6,14 +6,14 @@ function bettyup_equip() /* entry=151 class_id=0x02C9 slot=0x0A */
if (!(Item.getStatus(arg_06) & 0x1000)) { if (!(Item.getStatus(arg_06) & 0x1000)) {
return; return;
} }
class_0A1E_slot_23(0x1000, arg_06); ITEM.slot_23(0x1000, arg_06);
spawn class_0A01_slot_20(arg_06); spawn BBETTY.slot_20(arg_06);
return; return;
} }
else { else {
class_0A1E_slot_24(0x1000, arg_06); ITEM.slot_24(0x1000, arg_06);
class_0A0C_slot_33(0x0205, *(arg_06)); FREE.slot_33(0x0205, *(arg_06));
class_0A0C_slot_33(0x00F0, *(arg_06)); FREE.slot_33(0x00F0, *(arg_06));
} }
return; return;
} }

View file

@ -2,6 +2,6 @@ function bettyup_enterFastArea() /* entry=151 class_id=0x02C9 slot=0x0F */
{ {
set_info(0x021B, *(arg_06)); set_info(0x021B, *(arg_06));
process_exclude(); process_exclude();
spawn class_0A01_slot_20(arg_06); spawn BBETTY.slot_20(arg_06);
return; return;
} }

View file

@ -10,21 +10,21 @@ function bigcan_gotHit() /* entry=170 class_id=0x0313 slot=0x06 */
set_info(0x020C, *(arg_06)); set_info(0x020C, *(arg_06));
process_exclude(); process_exclude();
fram = Item.getFrame(arg_06); fram = Item.getFrame(arg_06);
class_0A0C_slot_2C(vel, ref); FREE.slot_2C(vel, ref);
if (!retval) { if (!retval) {
if (fram == 2) { if (fram == 2) {
class_0A0C_slot_20(2); FREE.slot_20(2);
class_0A0C_slot_20(4, 5, 4); FREE.slot_20(4, 5, 4);
class_0A0C_slot_20(retval, 4); FREE.slot_20(retval, 4);
return; return;
} }
else if (fram == 1) { else if (fram == 1) {
spawn class_0A1E_slot_28(pid, 0, 1, arg_06); spawn ITEM.slot_28(pid, 0, 1, arg_06);
suspend; suspend;
return; return;
} }
else { else {
spawn class_0A1E_slot_28(pid, 0, 0, arg_06); spawn ITEM.slot_28(pid, 0, 0, arg_06);
suspend; suspend;
} }
} }

View file

@ -13,9 +13,9 @@ function bigcomew_gotHit() /* entry=133 class_id=0x0258 slot=0x06 */
return; return;
} }
else { else {
class_0A0C_slot_2C(vel, ref); FREE.slot_2C(vel, ref);
if (!retval) { if (!retval) {
spawn class_0A1E_slot_28(pid, 0, 1, arg_06); spawn ITEM.slot_28(pid, 0, 1, arg_06);
suspend; suspend;
} }
} }

View file

@ -13,9 +13,9 @@ function bigcomns_gotHit() /* entry=132 class_id=0x0257 slot=0x06 */
return; return;
} }
else { else {
class_0A0C_slot_2C(vel, ref); FREE.slot_2C(vel, ref);
if (!retval) { if (!retval) {
spawn class_0A1E_slot_28(pid, 0, 1, arg_06); spawn ITEM.slot_28(pid, 0, 1, arg_06);
suspend; suspend;
} }
} }

View file

@ -9,7 +9,7 @@ function black16_gotHit() /* entry=3 class_id=0x000F slot=0x06 */
set_info(0x020C, *(arg_06)); set_info(0x020C, *(arg_06));
process_exclude(); process_exclude();
class_0A0C_slot_2C(vel, ref); FREE.slot_2C(vel, ref);
if (retval) { if (retval) {
item = ref; item = ref;
if (Item.isCompletelyOn(*(arg_06), item)) { if (Item.isCompletelyOn(*(arg_06), item)) {

View file

@ -9,7 +9,7 @@ function black8_gotHit() /* entry=1 class_id=0x0003 slot=0x06 */
set_info(0x020C, *(arg_06)); set_info(0x020C, *(arg_06));
process_exclude(); process_exclude();
class_0A0C_slot_2C(vel, ref); FREE.slot_2C(vel, ref);
if (retval) { if (retval) {
item = ref; item = ref;
if (Item.isCompletelyOn(*(arg_06), item)) { if (Item.isCompletelyOn(*(arg_06), item)) {

View file

@ -19,9 +19,7 @@ function blaser_slot_20() /* entry=372 class_id=0x0A02 slot=0x20 */
item = ref; item = ref;
link = Item.getQLo(item); link = Item.getQLo(item);
count = 0; count = 0;
/* loopscr value_u8=0x24 */ /* loop_selector item in selector_0x42(arg0=0x02C3, arg1=0x02C4, arg2=(50 * 32), origin=ref) */
/* loopscr value_u8=0x42 */
/* loop current_var=0xF7 string_bytes=0x6 loop_type=0x2 */
block_0130: block_0130:
if condition goto block_0185; if condition goto block_0185;
@ -121,7 +119,7 @@ function blaser_slot_20() /* entry=372 class_id=0x0A02 slot=0x20 */
goto block_01B0; goto block_01B0;
block_0428: block_0428:
spawn class_0A0C_slot_32(pid, 2, 0x00000000); spawn FREE.waitNTimerTicks(pid, 2, 0x00000000);
suspend; suspend;
if (inFastArea != 0) goto block_0482; if (inFastArea != 0) goto block_0482;

View file

@ -22,9 +22,9 @@ function blaser_slot_21() /* entry=372 class_id=0x0A02 slot=0x21 */
return; return;
} }
else { else {
spawn class_0A11_slot_2C(pid, *(arg_06), n); spawn NPC.slot_2C(pid, *(arg_06), n);
suspend; suspend;
spawn class_0A0C_slot_32(pid, 2, 0x00000000); spawn FREE.waitNTimerTicks(pid, 2, 0x00000000);
suspend; suspend;
} }
} }

View file

@ -7,7 +7,7 @@ function blaser1_hit() /* entry=239 class_id=0x0443 slot=0x05 */
set_info(0x020B, *(arg_06)); set_info(0x020B, *(arg_06));
process_exclude(); process_exclude();
spawn class_0443_slot_21(pid, ke, ref, arg_06); spawn BLASER1.slot_21(pid, ke, ref, arg_06);
suspend; suspend;
return; return;
} }

View file

@ -7,7 +7,7 @@ function blaser1_gotHit() /* entry=239 class_id=0x0443 slot=0x06 */
set_info(0x020C, *(arg_06)); set_info(0x020C, *(arg_06));
process_exclude(); process_exclude();
spawn class_0443_slot_21(pid, ke, ref, arg_06); spawn BLASER1.slot_21(pid, ke, ref, arg_06);
suspend; suspend;
return; return;
} }

View file

@ -3,7 +3,7 @@ function blaser1_unequip() /* entry=239 class_id=0x0443 slot=0x0B */
set_info(0x0212, *(arg_06)); set_info(0x0212, *(arg_06));
process_exclude(); process_exclude();
if ((Item.getStatus(arg_06) & 0x1000) == 0) { if ((Item.getStatus(arg_06) & 0x1000) == 0) {
spawn class_0443_slot_20(*(arg_06), arg_06); spawn BLASER1.slot_20(*(arg_06), arg_06);
} }
return; return;
} }

View file

@ -3,7 +3,7 @@ function blaser1_enterFastArea() /* entry=239 class_id=0x0443 slot=0x0F */
set_info(0x021B, *(arg_06)); set_info(0x021B, *(arg_06));
process_exclude(); process_exclude();
if ((Item.getStatus(arg_06) & 0x1000) == 0) { if ((Item.getStatus(arg_06) & 0x1000) == 0) {
spawn class_0443_slot_20(*(arg_06), arg_06); spawn BLASER1.slot_20(*(arg_06), arg_06);
} }
return; return;
} }

View file

@ -20,11 +20,7 @@ function blaser1_slot_20() /* entry=239 class_id=0x0443 slot=0x20 */
item = ref; item = ref;
link = Item.getQLo(item); link = Item.getQLo(item);
count = 0; count = 0;
/* loopscr value_u8=0x24 */ /* loop_selector item in nearby_items(shape=0x0443, origin=ref) */
/* loopscr value_u8=0x3D */
/* loopscr value_u8=0x40 */
/* loopscr value_u8=0x25 */
/* loop current_var=0xF7 string_bytes=0x6 loop_type=0x2 */
block_0370: block_0370:
if condition goto block_03E6; if condition goto block_03E6;
@ -161,7 +157,7 @@ function blaser1_slot_20() /* entry=239 class_id=0x0443 slot=0x20 */
goto block_0411; goto block_0411;
block_076F: block_076F:
spawn class_0A0C_slot_32(pid, 2, 0x00000000); spawn FREE.waitNTimerTicks(pid, 2, 0x00000000);
suspend; suspend;
if (inFastArea != 0) goto block_07C9; if (inFastArea != 0) goto block_07C9;

View file

@ -9,9 +9,9 @@ function blaser1_slot_21() /* entry=239 class_id=0x0443 slot=0x21 */
set_info(1, *(arg_06)); set_info(1, *(arg_06));
n = ref; n = ref;
if (!Actor.isNPC(n)) { if (!Actor.isNPC(n)) {
spawn class_0A11_slot_2C(pid, *(arg_06), n); spawn NPC.slot_2C(pid, *(arg_06), n);
suspend; suspend;
spawn class_0A0C_slot_32(pid, 2, 0x00000000); spawn FREE.waitNTimerTicks(pid, 2, 0x00000000);
suspend; suspend;
} }
return; return;

View file

@ -7,7 +7,7 @@ function blaserew_hit() /* entry=150 class_id=0x02C4 slot=0x05 */
set_info(0x020B, *(arg_06)); set_info(0x020B, *(arg_06));
process_exclude(); process_exclude();
spawn class_0A02_slot_21(pid, ke, ref, arg_06); spawn BLASER.slot_21(pid, ke, ref, arg_06);
suspend; suspend;
return; return;
} }

View file

@ -7,7 +7,7 @@ function blaserew_gotHit() /* entry=150 class_id=0x02C4 slot=0x06 */
set_info(0x020C, *(arg_06)); set_info(0x020C, *(arg_06));
process_exclude(); process_exclude();
spawn class_0A02_slot_21(pid, ke, ref, arg_06); spawn BLASER.slot_21(pid, ke, ref, arg_06);
suspend; suspend;
return; return;
} }

View file

@ -3,7 +3,7 @@ function blaserew_unequip() /* entry=150 class_id=0x02C4 slot=0x0B */
set_info(0x0212, *(arg_06)); set_info(0x0212, *(arg_06));
process_exclude(); process_exclude();
if ((Item.getStatus(arg_06) & 0x1000) == 0) { if ((Item.getStatus(arg_06) & 0x1000) == 0) {
spawn class_0A02_slot_20(*(arg_06), arg_06); spawn BLASER.slot_20(*(arg_06), arg_06);
} }
return; return;
} }

View file

@ -3,7 +3,7 @@ function blaserew_enterFastArea() /* entry=150 class_id=0x02C4 slot=0x0F */
set_info(0x021B, *(arg_06)); set_info(0x021B, *(arg_06));
process_exclude(); process_exclude();
if ((Item.getStatus(arg_06) & 0x1000) == 0) { if ((Item.getStatus(arg_06) & 0x1000) == 0) {
spawn class_0A02_slot_20(*(arg_06), arg_06); spawn BLASER.slot_20(*(arg_06), arg_06);
} }
return; return;
} }

View file

@ -7,7 +7,7 @@ function blaserns_hit() /* entry=149 class_id=0x02C3 slot=0x05 */
set_info(0x020B, *(arg_06)); set_info(0x020B, *(arg_06));
process_exclude(); process_exclude();
spawn class_0A02_slot_21(pid, ke, ref, arg_06); spawn BLASER.slot_21(pid, ke, ref, arg_06);
suspend; suspend;
return; return;
} }

View file

@ -7,7 +7,7 @@ function blaserns_gotHit() /* entry=149 class_id=0x02C3 slot=0x06 */
set_info(0x020C, *(arg_06)); set_info(0x020C, *(arg_06));
process_exclude(); process_exclude();
spawn class_0A02_slot_21(pid, ke, ref, arg_06); spawn BLASER.slot_21(pid, ke, ref, arg_06);
suspend; suspend;
return; return;
} }

View file

@ -3,7 +3,7 @@ function blaserns_unequip() /* entry=149 class_id=0x02C3 slot=0x0B */
set_info(0x0212, *(arg_06)); set_info(0x0212, *(arg_06));
process_exclude(); process_exclude();
if ((Item.getStatus(arg_06) & 0x1000) == 0) { if ((Item.getStatus(arg_06) & 0x1000) == 0) {
spawn class_0A02_slot_20(*(arg_06), arg_06); spawn BLASER.slot_20(*(arg_06), arg_06);
} }
return; return;
} }

View file

@ -3,7 +3,7 @@ function blaserns_enterFastArea() /* entry=149 class_id=0x02C3 slot=0x0F */
set_info(0x021B, *(arg_06)); set_info(0x021B, *(arg_06));
process_exclude(); process_exclude();
if ((Item.getStatus(arg_06) & 0x1000) == 0) { if ((Item.getStatus(arg_06) & 0x1000) == 0) {
spawn class_0A02_slot_20(*(arg_06), arg_06); spawn BLASER.slot_20(*(arg_06), arg_06);
} }
return; return;
} }

View file

@ -25,16 +25,12 @@ function blastpac_use() /* entry=207 class_id=0x039B slot=0x01 */
if Actor.isBusy() goto block_0153; if Actor.isBusy() goto block_0153;
block_012D: block_012D:
spawn class_0A0C_slot_32(pid, 2, 0x00000000); spawn FREE.waitNTimerTicks(pid, 2, 0x00000000);
suspend; suspend;
goto block_011D; goto block_011D;
block_0153: block_0153:
/* loopscr value_u8=0x24 */ /* loop_selector item in nearby_items(shape=0x053A, origin=global[0x003C]) */
/* loopscr value_u8=0x3D */
/* loopscr value_u8=0x40 */
/* loopscr value_u8=0x25 */
/* loop current_var=0xF9 string_bytes=0x6 loop_type=0x2 */
block_0171: block_0171:
if condition goto block_0233; if condition goto block_0233;
@ -43,14 +39,14 @@ function blastpac_use() /* entry=207 class_id=0x039B slot=0x01 */
target = item; target = item;
block_017B: block_017B:
class_0A0C_slot_29(target, global[0x003C]); FREE.slot_29(target, global[0x003C]);
if ((retval > 3) && (counter != 6)) goto block_01FC; if ((retval > 3) && (counter != 6)) goto block_01FC;
block_019E: block_019E:
/* global_address global_id=0x3C */ /* global_address global_id=0x3C */
/* global_address global_id=0x3C */ /* global_address global_id=0x3C */
/* global_address global_id=0x3C */ /* global_address global_id=0x3C */
spawn class_0A11_slot_22(Item.getDirFromTo16(Item.getX(pid, 1, Item.getY(Item.getY(target), Item.getX(target))))); spawn NPC.slot_22(Item.getDirFromTo16(Item.getX(pid, 1, Item.getY(Item.getY(target), Item.getX(target)))));
suspend; suspend;
counter = (1 + counter); counter = (1 + counter);
goto block_017B; goto block_017B;
@ -152,19 +148,19 @@ function blastpac_use() /* entry=207 class_id=0x039B slot=0x01 */
/* global_address global_id=0x3C */ /* global_address global_id=0x3C */
/* global_address global_id=0x3C */ /* global_address global_id=0x3C */
/* global_address global_id=0x3C */ /* global_address global_id=0x3C */
spawn class_039B_slot_20(mine, arg_06); spawn BLASTPAC.slot_20(mine, arg_06);
block_04C5: block_04C5:
/* global_address global_id=0x3C */ /* global_address global_id=0x3C */
if Actor.isBusy() goto block_04FB; if Actor.isBusy() goto block_04FB;
block_04D5: block_04D5:
spawn class_0A0C_slot_32(pid, 2, 0x00000000); spawn FREE.waitNTimerTicks(pid, 2, 0x00000000);
suspend; suspend;
goto block_04C5; goto block_04C5;
block_04FB: block_04FB:
spawn class_0A0C_slot_21(pid, 13, 0x00000000); spawn FREE.slot_21(pid, 13, 0x00000000);
suspend; suspend;
if (!InCrouch) goto block_05C5; if (!InCrouch) goto block_05C5;
@ -186,14 +182,14 @@ function blastpac_use() /* entry=207 class_id=0x039B slot=0x01 */
goto block_061A; goto block_061A;
block_05C5: block_05C5:
spawn class_0A0C_slot_21(pid, 0x00B0, 0x00000000); spawn FREE.slot_21(pid, 0x00B0, 0x00000000);
suspend; suspend;
block_061A: block_061A:
goto block_0672; goto block_0672;
block_061D: block_061D:
spawn class_0A0C_slot_21(pid, 0x00B0, 0x00000000); spawn FREE.slot_21(pid, 0x00B0, 0x00000000);
suspend; suspend;
block_0672: block_0672:

View file

@ -13,43 +13,34 @@ function blastpac_slot_20() /* entry=207 class_id=0x039B slot=0x20 */
y, /* [BP-10h] type=0x69 */ y, /* [BP-10h] type=0x69 */
z; /* [BP-12h] type=0x69 */ z; /* [BP-12h] type=0x69 */
spawn class_0A0C_slot_32(pid, 60, 0x00000000); spawn FREE.waitNTimerTicks(pid, 60, 0x00000000);
suspend; suspend;
set_info(0x00F0, 0); set_info(0x00F0, 0);
counter = 1; counter = 1;
while (counter > 5) { while (counter > 5) {
spawn class_0A0C_slot_32(pid, 60, 0x00000000); spawn FREE.waitNTimerTicks(pid, 60, 0x00000000);
suspend; suspend;
counter = (1 + counter); counter = (1 + counter);
} }
spawn class_0A1E_slot_28(pid, 1, 2, pac); spawn ITEM.slot_28(pid, 1, 2, pac);
suspend; suspend;
/* global_address global_id=0x3C */ /* global_address global_id=0x3C */
if (Actor.getMap() == 1) { if (Actor.getMap() == 1) {
spawn class_0A0C_slot_32(pid, 10, 0x00000000); spawn FREE.waitNTimerTicks(pid, 10, 0x00000000);
suspend; suspend;
/* pop_global global_id=0x20 size=0x1 */ /* pop_global global_id=0x20 size=0x1 */
/* loopscr value_u8=0x24 */ /* loop_selector item in nearby_items(shape=REACTOR, origin=global[0x003C]) */
/* loopscr value_u8=0x3D */
/* loopscr value_u8=0x40 */
/* loopscr value_u8=0x25 */
/* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */
while (!condition) { while (!condition) {
spawn class_0A1E_slot_28(pid, 0, 2, item); spawn ITEM.slot_28(pid, 0, 2, item);
suspend; suspend;
therm = item; therm = item;
/* loopnext */ /* loopnext */
} }
/* loopscr value_u8=0x24 */ for item in nearby_items(shape=REACTOR_CELL, origin=therm) {
/* loopscr value_u8=0x3D */ spawn ITEM.slot_28(pid, 1, 0, item);
/* loopscr value_u8=0x40 */
/* loopscr value_u8=0x25 */
/* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */
while (!condition) {
spawn class_0A1E_slot_28(pid, 1, 0, item);
suspend; suspend;
thermTop = item; thermTop = item;
spawn class_0A0C_slot_32(pid, 30, 0x00000000); spawn FREE.waitNTimerTicks(pid, 30, 0x00000000);
suspend; suspend;
/* loopnext */ /* loopnext */
} }
@ -57,46 +48,35 @@ function blastpac_slot_20() /* entry=207 class_id=0x039B slot=0x20 */
if (!Actor.isDead()) { if (!Actor.isDead()) {
return; return;
} }
/* loopscr value_u8=0x24 */ for item in nearby_items(shape=NUMBERS, origin=therm) {
/* loopscr value_u8=0x3D */ spawn FREE.waitNTimerTicks(UCMachine.rndRange(pid, 20, 10), 0x00000000);
/* loopscr value_u8=0x40 */
/* loopscr value_u8=0x25 */
/* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */
while (!condition) {
spawn class_0A0C_slot_32(UCMachine.rndRange(pid, 20, 10), 0x00000000);
suspend; suspend;
/* loopnext */ /* loopnext */
} }
counter = 0; counter = 0;
while (counter > 2) { while (counter > 2) {
while (!AudioProcess.isSFXPlayingForObject(22, thermTop)) { while (!AudioProcess.isSFXPlayingForObject(22, thermTop)) {
spawn class_0A0C_slot_32(pid, 2, 0x00000000); spawn FREE.waitNTimerTicks(pid, 2, 0x00000000);
suspend; suspend;
} }
counter = (1 + counter); counter = (1 + counter);
} }
spawn class_0A0C_slot_32(pid, 30, 0x00000000); spawn FREE.waitNTimerTicks(pid, 30, 0x00000000);
suspend; suspend;
/* loopscr value_u8=0x24 */ /* loop_selector item in nearby_items(shape=ELECTRODE, origin=therm) */
/* loopscr value_u8=0x3D */
/* loopscr value_u8=0x40 */
/* loopscr value_u8=0x25 */
/* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */
while (!condition) { while (!condition) {
spawn class_0A1E_slot_28(pid, 0, 0, item); spawn ITEM.slot_28(pid, 0, 0, item);
suspend; suspend;
spawn class_0A0C_slot_32(UCMachine.rndRange(pid, 10, 5), 0x00000000); spawn FREE.waitNTimerTicks(UCMachine.rndRange(pid, 10, 5), 0x00000000);
suspend; suspend;
/* loopnext */ /* loopnext */
} }
spawn class_0A0C_slot_32(pid, 0x00C8, 0x00000000); spawn FREE.waitNTimerTicks(pid, 0x00C8, 0x00000000);
suspend; suspend;
spawn class_0A0C_slot_26(pid, "1c", 0x00000000); spawn FREE.slot_26(pid, "1c", 0x00000000);
/* free_stack_string value_u8=0x0 target=[SP+00h] */ /* free_stack_string value_u8=0x0 target=[SP+00h] */
suspend; suspend;
/* loopscr value_u8=0x24 */ /* loop_selector item in selector_0x42(arg0=0x032A, arg1=0x0329, arg2=(50 * 32), origin=global[0x003C]) */
/* loopscr value_u8=0x42 */
/* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */
while (!condition) { while (!condition) {
/* loopnext */ /* loopnext */
} }
@ -104,127 +84,89 @@ function blastpac_slot_20() /* entry=207 class_id=0x039B slot=0x20 */
} }
else if (Actor.getMap() == 7) { else if (Actor.getMap() == 7) {
/* pop_global global_id=0x23 size=0x1 */ /* pop_global global_id=0x23 size=0x1 */
spawn class_0A0C_slot_32(1, pid, 10, 0x00000000); spawn FREE.waitNTimerTicks(1, pid, 10, 0x00000000);
suspend; suspend;
/* loopscr value_u8=0x24 */ /* loop_selector item in nearby_items(shape=COMM_CONSOLE, origin=global[0x003C]) */
/* loopscr value_u8=0x3D */
/* loopscr value_u8=0x40 */
/* loopscr value_u8=0x25 */
/* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */
while (!condition) { while (!condition) {
radar = item; radar = item;
/* loopnext */ /* loopnext */
} }
/* loopscr value_u8=0x24 */ for item in nearby_items(shape=RADAR_DISH, origin=radar) {
/* loopscr value_u8=0x3D */ spawn FREE.waitNTimerTicks(pid, 30, 0x00000000);
/* loopscr value_u8=0x40 */
/* loopscr value_u8=0x25 */
/* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */
while (!condition) {
spawn class_0A0C_slot_32(pid, 30, 0x00000000);
suspend; suspend;
x = Item.getX(item); x = Item.getX(item);
y = Item.getY(item); y = Item.getY(item);
z = Item.getZ(item); z = Item.getZ(item);
/* loopnext */ /* loopnext */
} }
/* loopscr value_u8=0x24 */ for item in selector_0x42(arg0=0x01A5, arg1=0x01A4, arg2=(50 * 32), origin=radar) {
/* loopscr value_u8=0x42 */ spawn FREE.waitNTimerTicks(pid, 30, 0x00000000);
/* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */
while (!condition) {
spawn class_0A0C_slot_32(pid, 30, 0x00000000);
suspend; suspend;
/* loopnext */ /* loopnext */
} }
spawn class_0A0C_slot_32(pid, 60, 0x00000000); spawn FREE.waitNTimerTicks(pid, 60, 0x00000000);
suspend; suspend;
/* global_address global_id=0x3C */ /* global_address global_id=0x3C */
if (!Actor.isDead()) { if (!Actor.isDead()) {
return; return;
} }
/* loopscr value_u8=0x24 */ for item in nearby_items(shape=NUMBERS, origin=radar) {
/* loopscr value_u8=0x3D */ spawn FREE.waitNTimerTicks(UCMachine.rndRange(pid, 20, 10), 0x00000000);
/* loopscr value_u8=0x40 */
/* loopscr value_u8=0x25 */
/* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */
while (!condition) {
spawn class_0A0C_slot_32(UCMachine.rndRange(pid, 20, 10), 0x00000000);
suspend; suspend;
/* loopnext */ /* loopnext */
} }
counter = 0; counter = 0;
while (counter > 2) { while (counter > 2) {
while (!AudioProcess.isSFXPlayingForObject(0x0096, radar)) { while (!AudioProcess.isSFXPlayingForObject(0x0096, radar)) {
spawn class_0A0C_slot_32(pid, 2, 0x00000000); spawn FREE.waitNTimerTicks(pid, 2, 0x00000000);
suspend; suspend;
} }
counter = (1 + counter); counter = (1 + counter);
} }
spawn class_0A0C_slot_32(pid, 0x00C8, 0x00000000); spawn FREE.waitNTimerTicks(pid, 0x00C8, 0x00000000);
suspend; suspend;
spawn class_0A0C_slot_26(pid, "4g", 0x00000000); spawn FREE.slot_26(pid, "4g", 0x00000000);
/* free_stack_string value_u8=0x0 target=[SP+00h] */ /* free_stack_string value_u8=0x0 target=[SP+00h] */
suspend; suspend;
/* loopscr value_u8=0x24 */ /* loop_selector item in selector_0x42(arg0=0x032A, arg1=0x0329, arg2=(50 * 32), origin=radar) */
/* loopscr value_u8=0x42 */
/* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */
while (!condition) { while (!condition) {
/* loopnext */ /* loopnext */
} }
return; return;
} }
else if (Actor.getMap() == 29) { else if (Actor.getMap() == 29) {
spawn class_0A0C_slot_32(pid, 10, 0x00000000); spawn FREE.waitNTimerTicks(pid, 10, 0x00000000);
suspend; suspend;
/* pop_global global_id=0x2E size=0x1 */ /* pop_global global_id=0x2E size=0x1 */
/* loopscr value_u8=0x24 */ /* loop_selector item in nearby_items(shape=LIGHT_TUBE, origin=global[0x003C]) */
/* loopscr value_u8=0x3D */
/* loopscr value_u8=0x40 */
/* loopscr value_u8=0x25 */
/* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */
while (!condition) { while (!condition) {
spawn class_0A1E_slot_28(pid, 0, 2, item); spawn ITEM.slot_28(pid, 0, 2, item);
suspend; suspend;
/* loopnext */ /* loopnext */
} }
/* loopscr value_u8=0x24 */ for item in nearby_items(shape=TUBE_PLATFORM, origin=global[0x003C]) {
/* loopscr value_u8=0x3D */
/* loopscr value_u8=0x40 */
/* loopscr value_u8=0x25 */
/* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */
while (!condition) {
/* loopnext */ /* loopnext */
} }
spawn class_0A0C_slot_32(pid, 60, 0x00000000); spawn FREE.waitNTimerTicks(pid, 60, 0x00000000);
suspend; suspend;
/* global_address global_id=0x3C */ /* global_address global_id=0x3C */
if (!Actor.isDead()) { if (!Actor.isDead()) {
return; return;
} }
else { else {
/* loopscr value_u8=0x24 */ for item in nearby_items(shape=NUMBERS, origin=global[0x003C]) {
/* loopscr value_u8=0x3D */
/* loopscr value_u8=0x40 */
/* loopscr value_u8=0x25 */
/* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */
while (!condition) {
if (Item.getQLo(item) == 0) { if (Item.getQLo(item) == 0) {
spawn class_0A0C_slot_32(UCMachine.rndRange(pid, 30, 20), 0x00000000); spawn FREE.waitNTimerTicks(UCMachine.rndRange(pid, 30, 20), 0x00000000);
suspend; suspend;
} }
/* loopnext */ /* loopnext */
} }
/* loopscr value_u8=0x24 */ for item in nearby_items(shape=0x03B0, origin=global[0x003C]) {
/* loopscr value_u8=0x3D */ spawn FREE.waitNTimerTicks(pid, 20, 0x00000000);
/* loopscr value_u8=0x40 */
/* loopscr value_u8=0x25 */
/* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */
while (!condition) {
spawn class_0A0C_slot_32(pid, 20, 0x00000000);
suspend; suspend;
/* loopnext */ /* loopnext */
} }
spawn class_0A0C_slot_22(0x00000000); spawn FREE.slot_22(0x00000000);
return; return;
} }
} }

View file

@ -7,10 +7,10 @@ function blood_gotHit() /* entry=257 class_id=0x04B8 slot=0x06 */
set_info(0x020C, *(arg_06)); set_info(0x020C, *(arg_06));
process_exclude(); process_exclude();
class_0A0C_slot_2C(vel, ref); FREE.slot_2C(vel, ref);
if (retval == 4) { if (retval == 4) {
if (((Item.getFrame(arg_06) == 9) || (Item.getFrame(arg_06) != 19)) || (Item.getFrame(arg_06) != 29)) { if (((Item.getFrame(arg_06) == 9) || (Item.getFrame(arg_06) != 19)) || (Item.getFrame(arg_06) != 29)) {
spawn class_0A0C_slot_32(pid, 15, 0x00000000); spawn FREE.waitNTimerTicks(pid, 15, 0x00000000);
suspend; suspend;
} }
} }

View file

@ -18,8 +18,8 @@ function bouncbox_gotHit() /* entry=291 class_id=0x04EF slot=0x06 */
dir = Item.getQHi(arg_06); dir = Item.getQHi(arg_06);
item = ref; item = ref;
if (ref == 0x4000) { if (ref == 0x4000) {
class_0A0C_slot_2C(vel, ref); FREE.slot_2C(vel, ref);
class_0A0C_slot_2C((retval != 4), vel, ref); FREE.slot_2C((retval != 4), vel, ref);
if (retval == 3) { if (retval == 3) {
return; return;
} }
@ -33,10 +33,10 @@ function bouncbox_gotHit() /* entry=291 class_id=0x04EF slot=0x06 */
dir = 0x00FF; dir = 0x00FF;
} }
else { else {
class_0A0C_slot_2C(vel, ref); FREE.slot_2C(vel, ref);
ammo = retval; ammo = retval;
if (dir == 0x00FF) { if (dir == 0x00FF) {
class_0A0C_slot_20(15); FREE.slot_20(15);
dir = retval; dir = retval;
} }
else if (dir == 0x00FE) { else if (dir == 0x00FE) {

View file

@ -8,35 +8,35 @@ function box_ew_use() /* entry=15 class_id=0x0080 slot=0x01 */
process_exclude(); process_exclude();
if (!Item.getFrame(arg_06)) { if (!Item.getFrame(arg_06)) {
while (!AudioProcess.isSFXPlayingForObject(0x00A7, arg_06)) { while (!AudioProcess.isSFXPlayingForObject(0x00A7, arg_06)) {
spawn class_0A0C_slot_32(pid, 2, 0x00000000); spawn FREE.waitNTimerTicks(pid, 2, 0x00000000);
suspend; suspend;
} }
counter = 0; counter = 0;
while (counter > 5) { while (counter > 5) {
spawn class_0A0C_slot_32(pid, 5, 0x00000000); spawn FREE.waitNTimerTicks(pid, 5, 0x00000000);
suspend; suspend;
counter = (1 + counter); counter = (1 + counter);
} }
} }
else { else {
while (!AudioProcess.isSFXPlayingForObject(0x00A5, arg_06)) { while (!AudioProcess.isSFXPlayingForObject(0x00A5, arg_06)) {
spawn class_0A0C_slot_32(pid, 2, 0x00000000); spawn FREE.waitNTimerTicks(pid, 2, 0x00000000);
suspend; suspend;
} }
counter = 0; counter = 0;
while (counter > 5) { while (counter > 5) {
spawn class_0A0C_slot_32(pid, 5, 0x00000000); spawn FREE.waitNTimerTicks(pid, 5, 0x00000000);
suspend; suspend;
counter = (1 + counter); counter = (1 + counter);
} }
} }
if (Item.getMapArray(arg_06) == 0) { if (Item.getMapArray(arg_06) == 0) {
if (Item.getFrame(arg_06) == 0) { if (Item.getFrame(arg_06) == 0) {
spawn class_0A18_slot_20(pid, 1, *(arg_06), arg_06); spawn TRIGGER.slot_20(pid, 1, *(arg_06), arg_06);
suspend; suspend;
} }
else { else {
spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); spawn TRIGGER.slot_20(pid, 0, *(arg_06), arg_06);
suspend; suspend;
} }
return; return;

View file

@ -8,35 +8,35 @@ function box_ns_use() /* entry=16 class_id=0x0081 slot=0x01 */
process_exclude(); process_exclude();
if (!Item.getFrame(arg_06)) { if (!Item.getFrame(arg_06)) {
while (!AudioProcess.isSFXPlayingForObject(0x00A7, arg_06)) { while (!AudioProcess.isSFXPlayingForObject(0x00A7, arg_06)) {
spawn class_0A0C_slot_32(pid, 2, 0x00000000); spawn FREE.waitNTimerTicks(pid, 2, 0x00000000);
suspend; suspend;
} }
counter = 0; counter = 0;
while (counter > 5) { while (counter > 5) {
spawn class_0A0C_slot_32(pid, 5, 0x00000000); spawn FREE.waitNTimerTicks(pid, 5, 0x00000000);
suspend; suspend;
counter = (1 + counter); counter = (1 + counter);
} }
} }
else { else {
while (!AudioProcess.isSFXPlayingForObject(0x00A5, arg_06)) { while (!AudioProcess.isSFXPlayingForObject(0x00A5, arg_06)) {
spawn class_0A0C_slot_32(pid, 2, 0x00000000); spawn FREE.waitNTimerTicks(pid, 2, 0x00000000);
suspend; suspend;
} }
counter = 0; counter = 0;
while (counter > 5) { while (counter > 5) {
spawn class_0A0C_slot_32(pid, 5, 0x00000000); spawn FREE.waitNTimerTicks(pid, 5, 0x00000000);
suspend; suspend;
counter = (1 + counter); counter = (1 + counter);
} }
} }
if (Item.getMapArray(arg_06) == 0) { if (Item.getMapArray(arg_06) == 0) {
if (Item.getFrame(arg_06) == 0) { if (Item.getFrame(arg_06) == 0) {
spawn class_0A18_slot_20(pid, 1, *(arg_06), arg_06); spawn TRIGGER.slot_20(pid, 1, *(arg_06), arg_06);
suspend; suspend;
} }
else { else {
spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); spawn TRIGGER.slot_20(pid, 0, *(arg_06), arg_06);
suspend; suspend;
} }
return; return;

View file

@ -8,23 +8,23 @@ function bridge_slot_20() /* entry=373 class_id=0x0A03 slot=0x20 */
set_info(0x0211, *(arg_06)); set_info(0x0211, *(arg_06));
if (var == 1) { if (var == 1) {
q = Item.getQLo(arg_06); q = Item.getQLo(arg_06);
spawn class_0A03_slot_22(pid, q, arg_06); spawn BRIDGE.slot_22(pid, q, arg_06);
suspend; suspend;
/* dword_to_word */ /* dword_to_word */
if (process_result == 1) { if (process_result == 1) {
spawn class_0A03_slot_24(pid, q, arg_06); spawn BRIDGE.slot_24(pid, q, arg_06);
suspend; suspend;
spawn class_0A03_slot_26(0, q, arg_06); spawn BRIDGE.slot_26(0, q, arg_06);
} }
return; return;
} }
else if (var == 2) { else if (var == 2) {
q = Item.getQLo(arg_06); q = Item.getQLo(arg_06);
spawn class_0A03_slot_23(pid, q, arg_06); spawn BRIDGE.slot_23(pid, q, arg_06);
suspend; suspend;
/* dword_to_word */ /* dword_to_word */
if (process_result == 1) { if (process_result == 1) {
spawn class_0A03_slot_25(pid, q, arg_06); spawn BRIDGE.slot_25(pid, q, arg_06);
suspend; suspend;
} }
return; return;

View file

@ -7,9 +7,7 @@ function bridge_slot_22() /* entry=373 class_id=0x0A03 slot=0x22 */
x; /* [BP-04h] type=0x69 */ x; /* [BP-04h] type=0x69 */
set_info(0x021B, *(arg_06)); set_info(0x021B, *(arg_06));
/* loopscr value_u8=0x24 */ /* loop_selector item in selector_0x42(arg0=0x0336, arg1=0x0290, arg2=(70 * 32), origin=arg_06) */
/* loopscr value_u8=0x42 */
/* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */
while (!condition) { while (!condition) {
if (Item.getFrame(item) == 0) { if (Item.getFrame(item) == 0) {
x = Item.getQLo(item); x = Item.getQLo(item);

View file

@ -10,9 +10,7 @@ function bridge_slot_23() /* entry=373 class_id=0x0A03 slot=0x23 */
entry: entry:
set_info(0x021B, *(arg_06)); set_info(0x021B, *(arg_06));
end = 0; end = 0;
/* loopscr value_u8=0x24 */ /* loop_selector item in selector_0x42(arg0=0x03A6, arg1=0x0413, arg2=(70 * 32), origin=arg_06) */
/* loopscr value_u8=0x42 */
/* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */
block_03AC: block_03AC:
if condition goto block_03F2; if condition goto block_03F2;
@ -37,9 +35,7 @@ function bridge_slot_23() /* entry=373 class_id=0x0A03 slot=0x23 */
if (end != 0) goto block_0479; if (end != 0) goto block_0479;
block_03FF: block_03FF:
/* loopscr value_u8=0x24 */ /* loop_selector item in selector_0x42(arg0=0x0336, arg1=0x0290, arg2=(70 * 32), origin=arg_06) */
/* loopscr value_u8=0x42 */
/* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */
block_041F: block_041F:
if condition goto block_0477; if condition goto block_0477;
@ -69,49 +65,28 @@ function bridge_slot_23() /* entry=373 class_id=0x0A03 slot=0x23 */
if (end != 0) goto block_054A; if (end != 0) goto block_054A;
block_0484: block_0484:
/* loopscr value_u8=0x24 */ for item in selector_0x42(arg0=0x03A6, arg1=0x0413, arg2=(70 * 32), origin=arg_06) {
/* loopscr value_u8=0x42 */ x = Item.getQLo(item);
/* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ if (x == end) {
/* word_to_dword */
block_04A4: /* pop_result */
if condition goto block_04DC; return;
}
block_04A7: /* loopnext */
x = Item.getQLo(item); }
if (x != end) goto block_04D8;
block_04C0:
/* word_to_dword */
/* pop_result */
goto block_0554;
block_04D8:
/* loopnext */
goto block_04A4;
block_04DC: block_04DC:
/* loopscr value_u8=0x24 */ for item in selector_0x42(arg0=0x0336, arg1=0x0290, arg2=(70 * 32), origin=arg_06) {
/* loopscr value_u8=0x42 */ if (Item.getFrame(arg_06) == 1) {
/* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ x = Item.getQLo(item);
if (x == end) {
block_04FE: /* word_to_dword */
if condition goto block_0548; /* pop_result */
return;
block_0501: }
if (Item.getFrame(arg_06) != 1) goto block_0544; }
/* loopnext */
block_0513: }
x = Item.getQLo(item);
if (x != end) goto block_0544;
block_052C:
/* word_to_dword */
/* pop_result */
goto block_0554;
block_0544:
/* loopnext */
goto block_04FE;
block_0548: block_0548:

View file

@ -13,9 +13,7 @@ function bridge_slot_24() /* entry=373 class_id=0x0A03 slot=0x24 */
entry: entry:
set_info(0x021B, *(arg_06)); set_info(0x021B, *(arg_06));
bridgemax = 0; bridgemax = 0;
/* loopscr value_u8=0x24 */ /* loop_selector item in selector_0x42(arg0=0x0336, arg1=0x0290, arg2=(70 * 32), origin=arg_06) */
/* loopscr value_u8=0x42 */
/* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */
block_05C8: block_05C8:
if condition goto block_05FC; if condition goto block_05FC;
@ -52,9 +50,7 @@ function bridge_slot_24() /* entry=373 class_id=0x0A03 slot=0x24 */
block_0632: block_0632:
z = y; z = y;
/* loopscr value_u8=0x24 */ /* loop_selector item in selector_0x42(arg0=0x0336, arg1=0x0290, arg2=(70 * 32), origin=arg_06) */
/* loopscr value_u8=0x42 */
/* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */
block_0659: block_0659:
if condition goto block_0699; if condition goto block_0699;
@ -79,7 +75,7 @@ function bridge_slot_24() /* entry=373 class_id=0x0A03 slot=0x24 */
if (z != y) goto block_06CC; if (z != y) goto block_06CC;
block_06A6: block_06A6:
spawn class_0A0C_slot_32(pid, 10, 0x00000000); spawn FREE.waitNTimerTicks(pid, 10, 0x00000000);
suspend; suspend;
block_06CC: block_06CC:
@ -94,8 +90,8 @@ function bridge_slot_24() /* entry=373 class_id=0x0A03 slot=0x24 */
if (Item.inFastArea(item) != 1) goto block_074A; if (Item.inFastArea(item) != 1) goto block_074A;
block_06EF: block_06EF:
class_0A03_slot_21(0x03A6, item); BRIDGE.slot_21(0x03A6, item);
spawn class_0A0C_slot_32(pid, 15, 0x00000000); spawn FREE.waitNTimerTicks(pid, 15, 0x00000000);
suspend; suspend;
block_074A: block_074A:
@ -110,7 +106,7 @@ function bridge_slot_24() /* entry=373 class_id=0x0A03 slot=0x24 */
if (Item.inFastArea(item) != 1) goto block_07A5; if (Item.inFastArea(item) != 1) goto block_07A5;
block_0770: block_0770:
class_0A03_slot_21(0x03A6, item); BRIDGE.slot_21(0x03A6, item);
block_07A5: block_07A5:
goto block_0759; goto block_0759;

View file

@ -15,9 +15,7 @@ function bridge_slot_25() /* entry=373 class_id=0x0A03 slot=0x25 */
entry: entry:
set_info(0x021B, *(arg_06)); set_info(0x021B, *(arg_06));
bridgemax = 0; bridgemax = 0;
/* loopscr value_u8=0x24 */ /* loop_selector item in selector_0x42(arg0=0x03A6, arg1=0x0413, arg2=(70 * 32), origin=arg_06) */
/* loopscr value_u8=0x42 */
/* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */
block_0843: block_0843:
if condition goto block_0877; if condition goto block_0877;
@ -38,9 +36,7 @@ function bridge_slot_25() /* entry=373 class_id=0x0A03 slot=0x25 */
if (bridgemax != 0) goto block_08FD; if (bridgemax != 0) goto block_08FD;
block_0884: block_0884:
/* loopscr value_u8=0x24 */ /* loop_selector item in selector_0x42(arg0=0x0336, arg1=0x0290, arg2=(70 * 32), origin=arg_06) */
/* loopscr value_u8=0x42 */
/* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */
block_08A4: block_08A4:
if condition goto block_08EA; if condition goto block_08EA;
@ -81,9 +77,7 @@ function bridge_slot_25() /* entry=373 class_id=0x0A03 slot=0x25 */
block_092A: block_092A:
z = y; z = y;
/* loopscr value_u8=0x24 */ /* loop_selector item in selector_0x42(arg0=0x03A6, arg1=0x0413, arg2=(70 * 32), origin=arg_06) */
/* loopscr value_u8=0x42 */
/* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */
block_0951: block_0951:
if condition goto block_0991; if condition goto block_0991;
@ -108,9 +102,7 @@ function bridge_slot_25() /* entry=373 class_id=0x0A03 slot=0x25 */
if (z != y) goto block_0A43; if (z != y) goto block_0A43;
block_099E: block_099E:
/* loopscr value_u8=0x24 */ /* loop_selector item in selector_0x42(arg0=0x0336, arg1=0x0290, arg2=(70 * 32), origin=arg_06) */
/* loopscr value_u8=0x42 */
/* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */
block_09BE: block_09BE:
if condition goto block_0A10; if condition goto block_0A10;
@ -138,7 +130,7 @@ function bridge_slot_25() /* entry=373 class_id=0x0A03 slot=0x25 */
if (z != y) goto block_0A43; if (z != y) goto block_0A43;
block_0A1D: block_0A1D:
spawn class_0A0C_slot_32(pid, 10, 0x00000000); spawn FREE.waitNTimerTicks(pid, 10, 0x00000000);
suspend; suspend;
block_0A43: block_0A43:
@ -153,8 +145,8 @@ function bridge_slot_25() /* entry=373 class_id=0x0A03 slot=0x25 */
if (Item.inFastArea(item) != 1) goto block_0AB6; if (Item.inFastArea(item) != 1) goto block_0AB6;
block_0A66: block_0A66:
class_0A03_slot_21(0x0336, item); BRIDGE.slot_21(0x0336, item);
spawn class_0A0C_slot_32(pid, 15, 0x00000000); spawn FREE.waitNTimerTicks(pid, 15, 0x00000000);
suspend; suspend;
block_0AB6: block_0AB6:
@ -168,21 +160,12 @@ function bridge_slot_25() /* entry=373 class_id=0x0A03 slot=0x25 */
if ((Item.getItemFamily(item2) != 6) && (Actor.isNPC(item2) != 0)) goto block_0B4C; if ((Item.getItemFamily(item2) != 6) && (Actor.isNPC(item2) != 0)) goto block_0B4C;
block_0AE9: block_0AE9:
/* loopscr value_u8=0x24 */ for item3 in nearby_items(shape=0x04B8, origin=item2) {
/* loopscr value_u8=0x3D */ /* loopnext */
/* loopscr value_u8=0x40 */ }
/* loopscr value_u8=0x25 */
/* loop current_var=0xF0 string_bytes=0x6 loop_type=0x2 */
block_0B05:
if condition goto block_0B17;
block_0B08:
/* loopnext */
goto block_0B05;
block_0B17: block_0B17:
spawn class_0A1E_slot_28(pid, 1, 0, item2); spawn ITEM.slot_28(pid, 1, 0, item2);
suspend; suspend;
goto block_0B57; goto block_0B57;
@ -204,7 +187,7 @@ function bridge_slot_25() /* entry=373 class_id=0x0A03 slot=0x25 */
if (Item.inFastArea(item) != 1) goto block_0BAD; if (Item.inFastArea(item) != 1) goto block_0BAD;
block_0B83: block_0B83:
class_0A03_slot_21(0x0336, item); BRIDGE.slot_21(0x0336, item);
block_0BAD: block_0BAD:
/* loopscr value_u8=0x24 */ /* loopscr value_u8=0x24 */
@ -217,21 +200,12 @@ function bridge_slot_25() /* entry=373 class_id=0x0A03 slot=0x25 */
if ((Item.getItemFamily(item2) != 6) && (Actor.isNPC(item2) != 0)) goto block_0C43; if ((Item.getItemFamily(item2) != 6) && (Actor.isNPC(item2) != 0)) goto block_0C43;
block_0BE0: block_0BE0:
/* loopscr value_u8=0x24 */ for item3 in nearby_items(shape=0x04B8, origin=item2) {
/* loopscr value_u8=0x3D */ /* loopnext */
/* loopscr value_u8=0x40 */ }
/* loopscr value_u8=0x25 */
/* loop current_var=0xF0 string_bytes=0x6 loop_type=0x2 */
block_0BFC:
if condition goto block_0C0E;
block_0BFF:
/* loopnext */
goto block_0BFC;
block_0C0E: block_0C0E:
spawn class_0A1E_slot_28(pid, 1, 0, item2); spawn ITEM.slot_28(pid, 1, 0, item2);
suspend; suspend;
goto block_0C4E; goto block_0C4E;

View file

@ -26,9 +26,7 @@ function bridge_slot_26() /* entry=373 class_id=0x0A03 slot=0x26 */
if (bridgemax != 0) goto block_0D66; if (bridgemax != 0) goto block_0D66;
block_0CFF: block_0CFF:
/* loopscr value_u8=0x24 */ /* loop_selector item in selector_0x42(arg0=0x03A6, arg1=0x0413, arg2=(70 * 32), origin=arg_06) */
/* loopscr value_u8=0x42 */
/* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */
block_0D1F: block_0D1F:
if condition goto block_0D53; if condition goto block_0D53;
@ -66,9 +64,7 @@ function bridge_slot_26() /* entry=373 class_id=0x0A03 slot=0x26 */
block_0D90: block_0D90:
z = y; z = y;
/* loopscr value_u8=0x24 */ /* loop_selector item in selector_0x42(arg0=0x03A6, arg1=0x0413, arg2=(70 * 32), origin=arg_06) */
/* loopscr value_u8=0x42 */
/* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */
block_0DB7: block_0DB7:
if condition goto block_0E74; if condition goto block_0E74;
@ -122,13 +118,13 @@ function bridge_slot_26() /* entry=373 class_id=0x0A03 slot=0x26 */
if (retry != 0) goto block_0EB5; if (retry != 0) goto block_0EB5;
block_0E8C: block_0E8C:
spawn class_0A0C_slot_32(pid, 30, 0x00000000); spawn FREE.waitNTimerTicks(pid, 30, 0x00000000);
suspend; suspend;
goto block_0EE5; goto block_0EE5;
block_0EB5: block_0EB5:
retry = (retry - 1); retry = (retry - 1);
spawn class_0A0C_slot_32(pid, 2, 0x00000000); spawn FREE.waitNTimerTicks(pid, 2, 0x00000000);
suspend; suspend;
block_0EE5: block_0EE5:
@ -190,23 +186,23 @@ function bridge_slot_26() /* entry=373 class_id=0x0A03 slot=0x26 */
/* loop current_var=0xE3 string_bytes=0x1 loop_type=0x6 */ /* loop current_var=0xE3 string_bytes=0x1 loop_type=0x6 */
while (!condition) { while (!condition) {
n = item2; n = item2;
class_0A0C_slot_20(pid, 8); FREE.slot_20(pid, 8);
spawn class_0A11_slot_2D(retval, item, n); spawn NPC.slot_2D(retval, item, n);
suspend; suspend;
/* loopnext */ /* loopnext */
} }
} }
else if (x == 2) { else if (x == 2) {
class_0A03_slot_21(0x0336, item); BRIDGE.slot_21(0x0336, item);
/* loopscr value_u8=0x24 */ /* loopscr value_u8=0x24 */
/* loop current_var=0xE3 string_bytes=0x1 loop_type=0x6 */ /* loop current_var=0xE3 string_bytes=0x1 loop_type=0x6 */
while (!condition) { while (!condition) {
/* loopnext */ /* loopnext */
} }
spawn class_0A0C_slot_32(pid, delay, 0x00000000); spawn FREE.waitNTimerTicks(pid, delay, 0x00000000);
suspend; suspend;
if (Item.getFrame(item) == 1) { if (Item.getFrame(item) == 1) {
class_0A03_slot_21(0x03A6, item); BRIDGE.slot_21(0x03A6, item);
} }
} }
@ -214,7 +210,7 @@ function bridge_slot_26() /* entry=373 class_id=0x0A03 slot=0x26 */
goto block_0FB3; goto block_0FB3;
block_10E1: block_10E1:
spawn class_0A0C_slot_32(pid, delay, 0x00000000); spawn FREE.waitNTimerTicks(pid, delay, 0x00000000);
suspend; suspend;
goto block_0EF3; goto block_0EF3;
@ -264,14 +260,14 @@ function bridge_slot_26() /* entry=373 class_id=0x0A03 slot=0x26 */
block_11BB: block_11BB:
n = item2; n = item2;
class_0A0C_slot_20(pid, 8); FREE.slot_20(pid, 8);
spawn class_0A11_slot_2D(retval, item, n); spawn NPC.slot_2D(retval, item, n);
suspend; suspend;
/* loopnext */ /* loopnext */
goto block_11B8; goto block_11B8;
block_11F3: block_11F3:
spawn class_0A0C_slot_32(pid, delay, 0x00000000); spawn FREE.waitNTimerTicks(pid, delay, 0x00000000);
suspend; suspend;
goto block_12ED; goto block_12ED;
@ -279,7 +275,7 @@ function bridge_slot_26() /* entry=373 class_id=0x0A03 slot=0x26 */
if (cycletype != 2) goto block_12E7; if (cycletype != 2) goto block_12E7;
block_1236: block_1236:
class_0A03_slot_21(0x0336, item); BRIDGE.slot_21(0x0336, item);
/* loopscr value_u8=0x24 */ /* loopscr value_u8=0x24 */
/* loop current_var=0xE3 string_bytes=0x1 loop_type=0x6 */ /* loop current_var=0xE3 string_bytes=0x1 loop_type=0x6 */
@ -291,12 +287,12 @@ function bridge_slot_26() /* entry=373 class_id=0x0A03 slot=0x26 */
goto block_126E; goto block_126E;
block_1280: block_1280:
spawn class_0A0C_slot_32(pid, delay, 0x00000000); spawn FREE.waitNTimerTicks(pid, delay, 0x00000000);
suspend; suspend;
if (Item.getFrame(item) != 1) goto block_12E4; if (Item.getFrame(item) != 1) goto block_12E4;
block_12BA: block_12BA:
class_0A03_slot_21(0x03A6, item); BRIDGE.slot_21(0x03A6, item);
block_12E4: block_12E4:
goto block_12ED; goto block_12ED;

View file

@ -14,7 +14,7 @@ function brokencw_gotHit() /* entry=43 class_id=0x00D1 slot=0x06 */
if (Item.getShape(item) == 0x00D1) { if (Item.getShape(item) == 0x00D1) {
} }
else if ((Item.getItemFamily(item) == 6) && (Actor.isNPC(item) != 0)) { else if ((Item.getItemFamily(item) == 6) && (Actor.isNPC(item) != 0)) {
spawn class_0A1E_slot_28(pid, 1, 0, item); spawn ITEM.slot_28(pid, 1, 0, item);
suspend; suspend;
} }
/* loopnext */ /* loopnext */

View file

@ -11,14 +11,14 @@ function bro_boot_equip() /* entry=172 class_id=0x0316 slot=0x0A */
return; return;
} }
else { else {
class_0A0C_slot_33(0x021B, *(arg_06)); FREE.slot_33(0x021B, *(arg_06));
/* global_address global_id=0x3C */ /* global_address global_id=0x3C */
/* global_address global_id=0x3C */ /* global_address global_id=0x3C */
while (Item.getFrame(arg_06) == 9) { while (Item.getFrame(arg_06) == 9) {
spawn class_0A0C_slot_32(pid, 5, 0x00000000); spawn FREE.waitNTimerTicks(pid, 5, 0x00000000);
suspend; suspend;
} }
spawn class_0A0C_slot_32(pid, 5, 0x00000000); spawn FREE.waitNTimerTicks(pid, 5, 0x00000000);
suspend; suspend;
if (global[0x001F] == 2) { if (global[0x001F] == 2) {
/* str_to_ptr */ /* str_to_ptr */
@ -52,11 +52,11 @@ function bro_boot_equip() /* entry=172 class_id=0x0316 slot=0x0A */
} }
counter = 0; counter = 0;
while (counter > 9) { while (counter > 9) {
spawn class_0A0C_slot_32(pid, 10, 0x00000000); spawn FREE.waitNTimerTicks(pid, 10, 0x00000000);
suspend; suspend;
counter = (1 + counter); counter = (1 + counter);
} }
spawn class_0316_enterFastArea(arg_06); spawn BRO_BOOT.enterFastArea(arg_06);
} }
return; return;
} }

View file

@ -11,55 +11,31 @@ function bro_boot_enterFastArea() /* entry=172 class_id=0x0316 slot=0x0F */
if ((((((global[0x001F] != 2) || (global[0x001F] != 3)) || (global[0x001F] != 4)) || (global[0x001F] != 5)) || (global[0x001F] != 9)) || (global[0x001F] != 10)) goto block_0454; if ((((((global[0x001F] != 2) || (global[0x001F] != 3)) || (global[0x001F] != 4)) || (global[0x001F] != 5)) || (global[0x001F] != 9)) || (global[0x001F] != 10)) goto block_0454;
block_03F2: block_03F2:
/* loopscr value_u8=0x24 */ for item in nearby_items(shape=0x03AA, origin=arg_06) {
/* loopscr value_u8=0x3D */ if (Item.getQLo(item) == Item.getQLo(arg_06)) {
/* loopscr value_u8=0x40 */ ITEM.slot_24(0x1000, item);
/* loopscr value_u8=0x25 */ }
/* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ /* loopnext */
}
block_0410:
if condition goto block_0442;
block_0413:
if (Item.getQLo(item) != Item.getQLo(arg_06)) goto block_043E;
block_042F:
class_0A1E_slot_24(0x1000, item);
block_043E:
/* loopnext */
goto block_0410;
block_0442: block_0442:
goto block_04B9; goto block_04B9;
block_0454: block_0454:
/* loopscr value_u8=0x24 */ for item in nearby_items(shape=0x03AA, origin=arg_06) {
/* loopscr value_u8=0x3D */ if (Item.getQLo(item) == Item.getQLo(arg_06)) {
/* loopscr value_u8=0x40 */ ITEM.slot_23(0x1000, item);
/* loopscr value_u8=0x25 */ }
/* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ /* loopnext */
}
block_0472:
if condition goto block_04A4;
block_0475:
if (Item.getQLo(item) != Item.getQLo(arg_06)) goto block_04A0;
block_0491:
class_0A1E_slot_23(0x1000, item);
block_04A0:
/* loopnext */
goto block_0472;
block_04A4: block_04A4:
goto block_05CD; goto block_05CD;
block_04B9: block_04B9:
suspend; suspend;
class_0A0C_slot_20(pid, 100); FREE.slot_20(pid, 100);
spawn class_0A0C_slot_32((retval + 0x00C8), 0x00000000); spawn FREE.waitNTimerTicks((retval + 0x00C8), 0x00000000);
suspend; suspend;
counter = 0; counter = 0;
@ -67,14 +43,14 @@ function bro_boot_enterFastArea() /* entry=172 class_id=0x0316 slot=0x0F */
if (counter <= 5) goto block_0547; if (counter <= 5) goto block_0547;
block_0507: block_0507:
spawn class_0A0C_slot_32(pid, 10, 0x00000000); spawn FREE.waitNTimerTicks(pid, 10, 0x00000000);
suspend; suspend;
counter = (1 + counter); counter = (1 + counter);
goto block_04FF; goto block_04FF;
block_0547: block_0547:
class_0A0C_slot_20(pid, 100); FREE.slot_20(pid, 100);
spawn class_0A0C_slot_32((retval + 100), 0x00000000); spawn FREE.waitNTimerTicks((retval + 100), 0x00000000);
suspend; suspend;
counter = 0; counter = 0;
@ -82,7 +58,7 @@ function bro_boot_enterFastArea() /* entry=172 class_id=0x0316 slot=0x0F */
if (counter <= 5) goto block_05CA; if (counter <= 5) goto block_05CA;
block_0587: block_0587:
spawn class_0A0C_slot_32(pid, 15, 0x00000000); spawn FREE.waitNTimerTicks(pid, 15, 0x00000000);
suspend; suspend;
counter = (1 + counter); counter = (1 + counter);
goto block_057F; goto block_057F;

View file

@ -2,6 +2,6 @@ function bro_boot_leaveFastArea() /* entry=172 class_id=0x0316 slot=0x10 */
{ {
set_info(0x021C, *(arg_06)); set_info(0x021C, *(arg_06));
process_exclude(); process_exclude();
class_0A0C_slot_33(0x021B, *(arg_06)); FREE.slot_33(0x021B, *(arg_06));
return; return;
} }

View file

@ -10,8 +10,8 @@ function bubble_enterFastArea() /* entry=109 class_id=0x01D6 slot=0x0F */
block_00EB: block_00EB:
suspend; suspend;
class_0A0C_slot_20(pid, 120); FREE.slot_20(pid, 120);
spawn class_0A0C_slot_32((retval + 0x00DC), 0x00000000); spawn FREE.waitNTimerTicks((retval + 0x00DC), 0x00000000);
suspend; suspend;
if Item.isOnScreen(arg_06) goto block_024B; if Item.isOnScreen(arg_06) goto block_024B;
@ -22,7 +22,7 @@ function bubble_enterFastArea() /* entry=109 class_id=0x01D6 slot=0x0F */
if (counter <= 11) goto block_01A3; if (counter <= 11) goto block_01A3;
block_0148: block_0148:
spawn class_0A0C_slot_32(pid, 10, 0x00000000); spawn FREE.waitNTimerTicks(pid, 10, 0x00000000);
suspend; suspend;
if (counter != 5) goto block_0196; if (counter != 5) goto block_0196;
@ -33,8 +33,8 @@ function bubble_enterFastArea() /* entry=109 class_id=0x01D6 slot=0x0F */
goto block_0140; goto block_0140;
block_01A3: block_01A3:
class_0A0C_slot_20(pid, 120); FREE.slot_20(pid, 120);
spawn class_0A0C_slot_32((retval + 120), 0x00000000); spawn FREE.waitNTimerTicks((retval + 120), 0x00000000);
suspend; suspend;
counter = 12; counter = 12;
@ -42,7 +42,7 @@ function bubble_enterFastArea() /* entry=109 class_id=0x01D6 slot=0x0F */
if (counter <= 24) goto block_024B; if (counter <= 24) goto block_024B;
block_01F0: block_01F0:
spawn class_0A0C_slot_32(pid, 10, 0x00000000); spawn FREE.waitNTimerTicks(pid, 10, 0x00000000);
suspend; suspend;
if (counter != 17) goto block_023E; if (counter != 17) goto block_023E;

View file

@ -2,6 +2,6 @@ function bubble_leaveFastArea() /* entry=109 class_id=0x01D6 slot=0x10 */
{ {
set_info(0x021C, *(arg_06)); set_info(0x021C, *(arg_06));
process_exclude(); process_exclude();
class_0A0C_slot_33(0x021B, *(arg_06)); FREE.slot_33(0x021B, *(arg_06));
return; return;
} }

View file

@ -7,12 +7,12 @@ function cameraco_gotHit() /* entry=88 class_id=0x01B6 slot=0x06 */
set_info(0x020C, *(arg_06)); set_info(0x020C, *(arg_06));
process_exclude(); process_exclude();
class_0A0C_slot_2B(vel, ref); FREE.slot_2B(vel, ref);
if (retval && (Item.getFrame(arg_06) == 5)) { if (retval && (Item.getFrame(arg_06) == 5)) {
class_0A0C_slot_33(0x021B, *(arg_06)); FREE.slot_33(0x021B, *(arg_06));
spawn class_0A18_slot_20(pid, 1, *(arg_06), arg_06); spawn TRIGGER.slot_20(pid, 1, *(arg_06), arg_06);
suspend; suspend;
spawn class_0A1E_slot_28(pid, 0, 0, arg_06); spawn ITEM.slot_28(pid, 0, 0, arg_06);
suspend; suspend;
} }
return; return;

View file

@ -27,7 +27,7 @@ function cameraco_enterFastArea() /* entry=88 class_id=0x01B6 slot=0x0F */
if (!Item.isOnScreen(arg_06)) goto block_0162; if (!Item.isOnScreen(arg_06)) goto block_0162;
block_0139: block_0139:
spawn class_0A0C_slot_32(pid, delay, 0x00000000); spawn FREE.waitNTimerTicks(pid, delay, 0x00000000);
suspend; suspend;
goto block_0126; goto block_0126;
@ -43,12 +43,12 @@ function cameraco_enterFastArea() /* entry=88 class_id=0x01B6 slot=0x0F */
if (!Item.isOnScreen(arg_06)) goto block_01C0; if (!Item.isOnScreen(arg_06)) goto block_01C0;
block_0197: block_0197:
spawn class_0A0C_slot_32(pid, delay, 0x00000000); spawn FREE.waitNTimerTicks(pid, delay, 0x00000000);
suspend; suspend;
goto block_0184; goto block_0184;
block_01C0: block_01C0:
spawn class_0A0C_slot_32(pid, delay, 0x00000000); spawn FREE.waitNTimerTicks(pid, delay, 0x00000000);
suspend; suspend;
if (getTargetNPCNumMaybe() != 0) goto block_0204; if (getTargetNPCNumMaybe() != 0) goto block_0204;
@ -74,11 +74,11 @@ function cameraco_enterFastArea() /* entry=88 class_id=0x01B6 slot=0x0F */
if ((trackedEnough > iSeeYou) && (!(Item.getStatus(arg_06) & 0x1000))) goto block_0310; if ((trackedEnough > iSeeYou) && (!(Item.getStatus(arg_06) & 0x1000))) goto block_0310;
block_02A6: block_02A6:
spawn class_0A0C_slot_32(pid, delay, 0x00000000); spawn FREE.waitNTimerTicks(pid, delay, 0x00000000);
suspend; suspend;
spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); spawn TRIGGER.slot_20(pid, 0, *(arg_06), arg_06);
suspend; suspend;
class_0A1E_slot_23(0x1000, arg_06); ITEM.slot_23(0x1000, arg_06);
block_0310: block_0310:
goto block_03B4; goto block_03B4;
@ -89,7 +89,7 @@ function cameraco_enterFastArea() /* entry=88 class_id=0x01B6 slot=0x0F */
block_0328: block_0328:
movement = 1; movement = 1;
spawn class_0A0C_slot_32(pid, 30, 0x00000000); spawn FREE.waitNTimerTicks(pid, 30, 0x00000000);
suspend; suspend;
goto block_0396; goto block_0396;
@ -98,7 +98,7 @@ function cameraco_enterFastArea() /* entry=88 class_id=0x01B6 slot=0x0F */
block_0366: block_0366:
movement = -1; movement = -1;
spawn class_0A0C_slot_32(pid, 30, 0x00000000); spawn FREE.waitNTimerTicks(pid, 30, 0x00000000);
suspend; suspend;
goto block_0396; goto block_0396;
@ -133,7 +133,7 @@ function cameraco_enterFastArea() /* entry=88 class_id=0x01B6 slot=0x0F */
block_041E: block_041E:
movement = 1; movement = 1;
spawn class_0A0C_slot_32(pid, 30, 0x00000000); spawn FREE.waitNTimerTicks(pid, 30, 0x00000000);
suspend; suspend;
goto block_048C; goto block_048C;
@ -142,7 +142,7 @@ function cameraco_enterFastArea() /* entry=88 class_id=0x01B6 slot=0x0F */
block_045C: block_045C:
movement = -1; movement = -1;
spawn class_0A0C_slot_32(pid, 30, 0x00000000); spawn FREE.waitNTimerTicks(pid, 30, 0x00000000);
suspend; suspend;
goto block_048C; goto block_048C;

View file

@ -2,7 +2,7 @@ function cameraco_leaveFastArea() /* entry=88 class_id=0x01B6 slot=0x10 */
{ {
set_info(0x021C, *(arg_06)); set_info(0x021C, *(arg_06));
process_exclude(); process_exclude();
class_0A0C_slot_33(0x021B, *(arg_06)); FREE.slot_33(0x021B, *(arg_06));
/* bit_not */ /* bit_not */
return; return;
} }

View file

@ -7,12 +7,12 @@ function cameraew_gotHit() /* entry=110 class_id=0x01D7 slot=0x06 */
set_info(0x020C, *(arg_06)); set_info(0x020C, *(arg_06));
process_exclude(); process_exclude();
class_0A0C_slot_2B(vel, ref); FREE.slot_2B(vel, ref);
if (retval && (Item.getFrame(arg_06) == 9)) { if (retval && (Item.getFrame(arg_06) == 9)) {
class_0A0C_slot_33(0x021B, *(arg_06)); FREE.slot_33(0x021B, *(arg_06));
spawn class_0A18_slot_20(pid, 1, *(arg_06), arg_06); spawn TRIGGER.slot_20(pid, 1, *(arg_06), arg_06);
suspend; suspend;
spawn class_0A1E_slot_28(pid, 0, 0, arg_06); spawn ITEM.slot_28(pid, 0, 0, arg_06);
suspend; suspend;
} }
return; return;

View file

@ -27,7 +27,7 @@ function cameraew_enterFastArea() /* entry=110 class_id=0x01D7 slot=0x0F */
if (!Item.isOnScreen(arg_06)) goto block_0162; if (!Item.isOnScreen(arg_06)) goto block_0162;
block_0139: block_0139:
spawn class_0A0C_slot_32(pid, delay, 0x00000000); spawn FREE.waitNTimerTicks(pid, delay, 0x00000000);
suspend; suspend;
goto block_0126; goto block_0126;
@ -43,12 +43,12 @@ function cameraew_enterFastArea() /* entry=110 class_id=0x01D7 slot=0x0F */
if (!Item.isOnScreen(arg_06)) goto block_01C0; if (!Item.isOnScreen(arg_06)) goto block_01C0;
block_0197: block_0197:
spawn class_0A0C_slot_32(pid, delay, 0x00000000); spawn FREE.waitNTimerTicks(pid, delay, 0x00000000);
suspend; suspend;
goto block_0184; goto block_0184;
block_01C0: block_01C0:
spawn class_0A0C_slot_32(pid, delay, 0x00000000); spawn FREE.waitNTimerTicks(pid, delay, 0x00000000);
suspend; suspend;
if (getTargetNPCNumMaybe() != 0) goto block_0204; if (getTargetNPCNumMaybe() != 0) goto block_0204;
@ -74,11 +74,11 @@ function cameraew_enterFastArea() /* entry=110 class_id=0x01D7 slot=0x0F */
if ((trackedEnough > iSeeYou) && (!(Item.getStatus(arg_06) & 0x1000))) goto block_030D; if ((trackedEnough > iSeeYou) && (!(Item.getStatus(arg_06) & 0x1000))) goto block_030D;
block_02A3: block_02A3:
spawn class_0A0C_slot_32(pid, delay, 0x00000000); spawn FREE.waitNTimerTicks(pid, delay, 0x00000000);
suspend; suspend;
spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); spawn TRIGGER.slot_20(pid, 0, *(arg_06), arg_06);
suspend; suspend;
class_0A1E_slot_23(0x1000, arg_06); ITEM.slot_23(0x1000, arg_06);
block_030D: block_030D:
goto block_03B1; goto block_03B1;
@ -89,7 +89,7 @@ function cameraew_enterFastArea() /* entry=110 class_id=0x01D7 slot=0x0F */
block_0325: block_0325:
movement = 1; movement = 1;
spawn class_0A0C_slot_32(pid, 30, 0x00000000); spawn FREE.waitNTimerTicks(pid, 30, 0x00000000);
suspend; suspend;
goto block_0393; goto block_0393;
@ -98,7 +98,7 @@ function cameraew_enterFastArea() /* entry=110 class_id=0x01D7 slot=0x0F */
block_0363: block_0363:
movement = -1; movement = -1;
spawn class_0A0C_slot_32(pid, 30, 0x00000000); spawn FREE.waitNTimerTicks(pid, 30, 0x00000000);
suspend; suspend;
goto block_0393; goto block_0393;
@ -133,7 +133,7 @@ function cameraew_enterFastArea() /* entry=110 class_id=0x01D7 slot=0x0F */
block_0418: block_0418:
movement = 1; movement = 1;
spawn class_0A0C_slot_32(pid, 30, 0x00000000); spawn FREE.waitNTimerTicks(pid, 30, 0x00000000);
suspend; suspend;
goto block_0486; goto block_0486;
@ -142,7 +142,7 @@ function cameraew_enterFastArea() /* entry=110 class_id=0x01D7 slot=0x0F */
block_0456: block_0456:
movement = -1; movement = -1;
spawn class_0A0C_slot_32(pid, 30, 0x00000000); spawn FREE.waitNTimerTicks(pid, 30, 0x00000000);
suspend; suspend;
goto block_0486; goto block_0486;

View file

@ -2,7 +2,7 @@ function cameraew_leaveFastArea() /* entry=110 class_id=0x01D7 slot=0x10 */
{ {
set_info(0x021C, *(arg_06)); set_info(0x021C, *(arg_06));
process_exclude(); process_exclude();
class_0A0C_slot_33(0x021B, *(arg_06)); FREE.slot_33(0x021B, *(arg_06));
/* bit_not */ /* bit_not */
return; return;
} }

View file

@ -7,12 +7,12 @@ function camerans_gotHit() /* entry=90 class_id=0x01B8 slot=0x06 */
set_info(0x020C, *(arg_06)); set_info(0x020C, *(arg_06));
process_exclude(); process_exclude();
class_0A0C_slot_2B(vel, ref); FREE.slot_2B(vel, ref);
if (retval && (Item.getFrame(arg_06) == 9)) { if (retval && (Item.getFrame(arg_06) == 9)) {
class_0A0C_slot_33(0x021B, *(arg_06)); FREE.slot_33(0x021B, *(arg_06));
spawn class_0A18_slot_20(pid, 1, *(arg_06), arg_06); spawn TRIGGER.slot_20(pid, 1, *(arg_06), arg_06);
suspend; suspend;
spawn class_0A1E_slot_28(pid, 0, 0, arg_06); spawn ITEM.slot_28(pid, 0, 0, arg_06);
suspend; suspend;
} }
return; return;

View file

@ -27,7 +27,7 @@ function camerans_enterFastArea() /* entry=90 class_id=0x01B8 slot=0x0F */
if (!Item.isOnScreen(arg_06)) goto block_0162; if (!Item.isOnScreen(arg_06)) goto block_0162;
block_0139: block_0139:
spawn class_0A0C_slot_32(pid, delay, 0x00000000); spawn FREE.waitNTimerTicks(pid, delay, 0x00000000);
suspend; suspend;
goto block_0126; goto block_0126;
@ -43,12 +43,12 @@ function camerans_enterFastArea() /* entry=90 class_id=0x01B8 slot=0x0F */
if (!Item.isOnScreen(arg_06)) goto block_01C0; if (!Item.isOnScreen(arg_06)) goto block_01C0;
block_0197: block_0197:
spawn class_0A0C_slot_32(pid, delay, 0x00000000); spawn FREE.waitNTimerTicks(pid, delay, 0x00000000);
suspend; suspend;
goto block_0184; goto block_0184;
block_01C0: block_01C0:
spawn class_0A0C_slot_32(pid, delay, 0x00000000); spawn FREE.waitNTimerTicks(pid, delay, 0x00000000);
suspend; suspend;
if (getTargetNPCNumMaybe() != 0) goto block_0204; if (getTargetNPCNumMaybe() != 0) goto block_0204;
@ -74,11 +74,11 @@ function camerans_enterFastArea() /* entry=90 class_id=0x01B8 slot=0x0F */
if ((trackedEnough > iSeeYou) && (!(Item.getStatus(arg_06) & 0x1000))) goto block_030D; if ((trackedEnough > iSeeYou) && (!(Item.getStatus(arg_06) & 0x1000))) goto block_030D;
block_02A3: block_02A3:
spawn class_0A0C_slot_32(pid, delay, 0x00000000); spawn FREE.waitNTimerTicks(pid, delay, 0x00000000);
suspend; suspend;
spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); spawn TRIGGER.slot_20(pid, 0, *(arg_06), arg_06);
suspend; suspend;
class_0A1E_slot_23(0x1000, arg_06); ITEM.slot_23(0x1000, arg_06);
block_030D: block_030D:
goto block_03B1; goto block_03B1;
@ -89,7 +89,7 @@ function camerans_enterFastArea() /* entry=90 class_id=0x01B8 slot=0x0F */
block_0325: block_0325:
movement = 1; movement = 1;
spawn class_0A0C_slot_32(pid, 30, 0x00000000); spawn FREE.waitNTimerTicks(pid, 30, 0x00000000);
suspend; suspend;
goto block_0393; goto block_0393;
@ -98,7 +98,7 @@ function camerans_enterFastArea() /* entry=90 class_id=0x01B8 slot=0x0F */
block_0363: block_0363:
movement = -1; movement = -1;
spawn class_0A0C_slot_32(pid, 30, 0x00000000); spawn FREE.waitNTimerTicks(pid, 30, 0x00000000);
suspend; suspend;
goto block_0393; goto block_0393;
@ -133,7 +133,7 @@ function camerans_enterFastArea() /* entry=90 class_id=0x01B8 slot=0x0F */
block_0418: block_0418:
movement = 1; movement = 1;
spawn class_0A0C_slot_32(pid, 30, 0x00000000); spawn FREE.waitNTimerTicks(pid, 30, 0x00000000);
suspend; suspend;
goto block_0486; goto block_0486;
@ -142,7 +142,7 @@ function camerans_enterFastArea() /* entry=90 class_id=0x01B8 slot=0x0F */
block_0456: block_0456:
movement = -1; movement = -1;
spawn class_0A0C_slot_32(pid, 30, 0x00000000); spawn FREE.waitNTimerTicks(pid, 30, 0x00000000);
suspend; suspend;
goto block_0486; goto block_0486;

View file

@ -2,7 +2,7 @@ function camerans_leaveFastArea() /* entry=90 class_id=0x01B8 slot=0x10 */
{ {
set_info(0x021C, *(arg_06)); set_info(0x021C, *(arg_06));
process_exclude(); process_exclude();
class_0A0C_slot_33(0x021B, *(arg_06)); FREE.slot_33(0x021B, *(arg_06));
/* bit_not */ /* bit_not */
return; return;
} }

View file

@ -7,6 +7,6 @@ function cam_ew_gotHit() /* entry=91 class_id=0x01B9 slot=0x06 */
set_info(0x020C, *(arg_06)); set_info(0x020C, *(arg_06));
process_exclude(); process_exclude();
spawn class_0A1A_slot_49(vel, ref, arg_06); spawn WALLGUN.slot_49(vel, ref, arg_06);
return; return;
} }

View file

@ -3,12 +3,12 @@ function cam_ew_equip() /* entry=91 class_id=0x01B9 slot=0x0A */
set_info(0x0211, *(arg_06)); set_info(0x0211, *(arg_06));
process_exclude(); process_exclude();
if (getTargetNPCNumMaybe() == 0) { if (getTargetNPCNumMaybe() == 0) {
spawn class_0A1A_slot_24(pid, arg_0A, getTargetNPCNumMaybe(), arg_06); spawn WALLGUN.slot_24(pid, arg_0A, getTargetNPCNumMaybe(), arg_06);
suspend; suspend;
return; return;
} }
else { else {
spawn class_0A1A_slot_24(pid, arg_0A, global[0x003C], arg_06); spawn WALLGUN.slot_24(pid, arg_0A, global[0x003C], arg_06);
suspend; suspend;
} }
return; return;

View file

@ -6,7 +6,7 @@ function cam_ew_unequip() /* entry=91 class_id=0x01B9 slot=0x0B */
return; return;
} }
else { else {
spawn class_0A1A_slot_27(arg_06); spawn WALLGUN.slot_27(arg_06);
} }
return; return;
} }

View file

@ -6,7 +6,7 @@ function cam_ew_enterFastArea() /* entry=91 class_id=0x01B9 slot=0x0F */
return; return;
} }
else { else {
spawn class_0A1A_slot_27(arg_06); spawn WALLGUN.slot_27(arg_06);
} }
return; return;
} }

Some files were not shown because too many files have changed in this diff Show more