Walk To Event Instruction
Jump to navigation
Jump to search
# ROUTINE: WalkTo Event Instruction # Parameters: # r4 = (params) (Pointer to parameters for this instruction) 8013e5c0: 27bdffd0 addiu r29,r29,-0x0030 8013e5c4: afb10024 sw r17,0x0024(r29) 8013e5c8: 00808821 addu r17,r4,r0 # params 8013e5cc: afbf0028 sw r31,0x0028(r29) 8013e5d0: 0c05181e jal 0x80146078 # UnitID = Load Halfword (¶ms.UnitID); 8013e5d4: afb00020 sw r16,0x0020(r29) 8013e5d8: 00021400 sll r2,r2,0x10 8013e5dc: 0c04cc56 jal 0x80133158 # MiscID = Get misc ID (UnitID); 8013e5e0: 00022403 sra r4,r2,0x10 # UnitID 8013e5e4: 00408021 addu r16,r2,r0 # MiscID 8013e5e8: 340207d0 ori r2,r0,0x07d0 # 2000 8013e5ec: 12020015 beq r16,r2,0x8013e644 # if (MiscID == 2000), return 8013e5f0: 26240005 addiu r4,r17,0x0005 # ¶ms.Speed 8013e5f4: 92220002 lbu r2,0x0002(r17) # params.X 8013e5f8: 00000000 nop 8013e5fc: a7a20018 sh r2,0x0018(r29) # coords[0] = params.X 8013e600: 92220003 lbu r2,0x0003(r17) # params.Y 8013e604: 00000000 nop 8013e608: a7a2001c sh r2,0x001c(r29) # coords[2] = params.Y 8013e60c: 92220004 lbu r2,0x0004(r17) # params.HigherElevation 8013e610: 0c05181e jal 0x80146078 # Speed = Load Halfword (¶ms.Speed); 8013e614: a7a2001a sh r2,0x001a(r29) # coords[1] = params.HigherElevation 8013e618: 02002021 addu r4,r16,r0 # MiscID 8013e61c: 00021400 sll r2,r2,0x10 8013e620: 92260007 lbu r6,0x0007(r17) # params.ElevationFlag 8013e624: 00021403 sra r2,r2,0x10 8013e628: afa20010 sw r2,0x0010(r29) # Speed 8013e62c: 34020100 ori r2,r0,0x0100 # 256 8013e630: 27a50018 addiu r5,r29,0x0018 # coords 8013e634: 34070003 ori r7,r0,0x0003 # 3 8013e638: 00063200 sll r6,r6,0x08 # params.ElevationFlag * 256 8013e63c: 0c023199 jal 0x8008c664 # Walk To (MiscID, coords, ElevationAddend, 3, Speed); 8013e640: 00463023 subu r6,r2,r6 # ElevationAddend = 256 - (params.ElevationFlag * 256) 8013e644: 8fbf0028 lw r31,0x0028(r29) 8013e648: 8fb10024 lw r17,0x0024(r29) 8013e64c: 8fb00020 lw r16,0x0020(r29) 8013e650: 27bd0030 addiu r29,r29,0x0030 8013e654: 03e00008 jr r31 8013e658: 00000000 nop