Prev: 49015 Up: Map Next: 49087
49039: Script Routine: (36) Task-two entity action
Step the task-two entity one character vertically along its walk.
Input
IX Address of complex state data for an entity
ScriptRoutine_TaskTwoWalkVertical 49039 LD A,(IX+5) Load A with the current entity's y-coordinate.
49042 DEC A Step the current entity's y-coordinate back by one.
49043 CP 21 Is the current entity's y-coordinate equal to 21? If so, jump to ScriptRoutine_TaskTwoWalkVertical_AtY15.
49045 JR Z,ScriptRoutine_TaskTwoWalkVertical_AtY15
49047 CP 27 Is the current entity's y-coordinate equal to 27? If not, jump to ScriptRoutine_TaskTwoWalkVertical_DecY.
49049 JR NZ,ScriptRoutine_TaskTwoWalkVertical_DecY
49051 LD A,(29363) Load A with the game event flags (GameEventFlags).
49054 RES 4,A Clear bit 4 of the flag byte in A.
49056 LD (29363),A Set the game event flags (GameEventFlags).
Keep walking the task-two entity one row up, then continue the script.
ScriptRoutine_TaskTwoWalkVertical_DecY 49059 DEC (IX+5) Move this entity one character up.
49062 DEC (IX+6)
49065 JP AdvanceScriptInstruction Jump to AdvanceScriptInstruction to run the next script instruction.
At y 21: run bound script BirdScript_BoundLoop if the spawn latch is set, else idle.
ScriptRoutine_TaskTwoWalkVertical_AtY15 49068 LD A,(29365) Load A with the task-two flags (TaskTwoFlags).
49071 BIT 2,A Is bit 2 of task-two flags set? If not, jump to ScriptRoutine_TaskTwoWalkVertical_RunIdleScript.
49073 JR Z,ScriptRoutine_TaskTwoWalkVertical_RunIdleScript
49075 LD HL,48825 Point HL at bird script data BirdScript_BoundLoop.
49078 JP ScriptInstruction Jump to ScriptInstruction to execute the script instruction at HL.
Vertical walk finished: run the task-two idle script (BirdScript_IdleLoop).
ScriptRoutine_TaskTwoWalkVertical_RunIdleScript 49081 LD HL,48769 Point HL at bird script data BirdScript_IdleLoop.
49084 JP ScriptInstruction Jump to ScriptInstruction to execute the script instruction at HL.
Prev: 49015 Up: Map Next: 49087