Handle Menu Action (WORLD.BIN)
Revision as of 14:21, 1 July 2020 by Glain (talk | contribs) (Created page with " # ROUTINE: HANDLE MENU ACTION (WORLD.BIN) # Handles taking a menu action. # This function is an analog to Handle Menu Action in BATTLE.BIN. # Param...")
# ROUTINE: HANDLE MENU ACTION (WORLD.BIN) # Handles taking a menu action. # This function is an analog to Handle Menu Action in BATTLE.BIN. # Parameters: # r4 = (p1) Struct data for menu (Example value: 0x8018c0d8) # r5 = (p2) Row index 800ebb08: 3c028015 lui r2,0x8015 800ebb0c: 944232da lhu r2,0x32da(r2) 800ebb10: 27bdffb0 addiu r29,r29,-0x0050 800ebb14: afb70044 sw r23,0x0044(r29) 800ebb18: 00a0b821 addu r23,r5,r0 800ebb1c: afb00028 sw r16,0x0028(r29) 800ebb20: 34100002 ori r16,r0,0x0002 800ebb24: afbf004c sw r31,0x004c(r29) 800ebb28: afbe0048 sw r30,0x0048(r29) 800ebb2c: afb60040 sw r22,0x0040(r29) 800ebb30: afb5003c sw r21,0x003c(r29) 800ebb34: afb40038 sw r20,0x0038(r29) 800ebb38: afb30034 sw r19,0x0034(r29) 800ebb3c: afb20030 sw r18,0x0030(r29) 800ebb40: afb1002c sw r17,0x002c(r29) 800ebb44: 14500007 bne r2,r16,0x800ebb64 800ebb48: afa40010 sw r4,0x0010(r29) 800ebb4c: 0c03bc6a jal 0x800ef1a8 800ebb50: 34040028 ori r4,r0,0x0028 800ebb54: 02e21007 srav r2,r2,r23 800ebb58: 30420001 andi r2,r2,0x0001 800ebb5c: 1440008e bne r2,r0,0x800ebd98 800ebb60: 00000000 nop 800ebb64: 3c028019 lui r2,0x8019 800ebb68: 8c425c34 lw r2,0x5c34(r2) 800ebb6c: 00000000 nop 800ebb70: 30420020 andi r2,r2,0x0020 800ebb74: 10400088 beq r2,r0,0x800ebd98 800ebb78: 0000b021 addu r22,r0,r0 800ebb7c: 0c03ae8c jal 0x800eba30 800ebb80: 00000000 nop 800ebb84: 10400084 beq r2,r0,0x800ebd98 800ebb88: 00000000 nop 800ebb8c: 3c02801d lui r2,0x801d 800ebb90: 8c42d170 lw r2,-0x2e90(r2) 800ebb94: 00000000 nop 800ebb98: 00021a80 sll r3,r2,0x0a 800ebb9c: 3c018019 lui r1,0x8019 800ebba0: 00230821 addu r1,r1,r3 800ebba4: 8c225d24 lw r2,0x5d24(r1) 800ebba8: 00000000 nop 800ebbac: 14400007 bne r2,r0,0x800ebbcc 800ebbb0: 00000000 nop 800ebbb4: 3c018019 lui r1,0x8019 800ebbb8: 00230821 addu r1,r1,r3 800ebbbc: ac305d24 sw r16,0x5d24(r1) 800ebbc0: 3c018019 lui r1,0x8019 800ebbc4: 00230821 addu r1,r1,r3 800ebbc8: ac205d20 sw r0,0x5d20(r1) 800ebbcc: 8fa80010 lw r8,0x0010(r29) 800ebbd0: 00000000 nop 800ebbd4: 8d100024 lw r16,0x0024(r8) 800ebbd8: 00000000 nop 800ebbdc: 2602000f addiu r2,r16,0x000f 800ebbe0: 2c42000f sltiu r2,r2,0x000f 800ebbe4: 14400004 bne r2,r0,0x800ebbf8 800ebbe8: 0200a021 addu r20,r16,r0 800ebbec: 00171040 sll r2,r23,0x01 800ebbf0: 00501021 addu r2,r2,r16 800ebbf4: 84540000 lh r20,0x0000(r2) 800ebbf8: 00000000 nop 800ebbfc: 06800023 bltz r20,0x800ebc8c 800ebc00: 32821000 andi r2,r20,0x1000 800ebc04: 10400003 beq r2,r0,0x800ebc14 800ebc08: 00000000 nop 800ebc0c: 34160001 ori r22,r0,0x0001 800ebc10: 2694f000 addiu r20,r20,-0x1000 800ebc14: 0680001d bltz r20,0x800ebc8c 800ebc18: 2a820100 slti r2,r20,0x0100 800ebc1c: 10400016 beq r2,r0,0x800ebc78 800ebc20: 00148100 sll r16,r20,0x04 800ebc24: 02148023 subu r16,r16,r20 800ebc28: 00108080 sll r16,r16,0x02 800ebc2c: 3c02801d lui r2,0x801d 800ebc30: 8c42d7e0 lw r2,-0x2820(r2) 800ebc34: 3c04801d lui r4,0x801d 800ebc38: 8c84d170 lw r4,-0x2e90(r4) 800ebc3c: 02021021 addu r2,r16,r2 800ebc40: 8c450028 lw r5,0x0028(r2) 800ebc44: 0c03ff5c jal 0x800ffd70 800ebc48: 2484ffff addiu r4,r4,-0x0001 800ebc4c: 00003021 addu r6,r0,r0 800ebc50: 00003821 addu r7,r0,r0 800ebc54: 3c04801d lui r4,0x801d 800ebc58: 8c84d170 lw r4,-0x2e90(r4) 800ebc5c: 3c05801d lui r5,0x801d 800ebc60: 8ca5d7e0 lw r5,-0x2820(r5) 800ebc64: 2484ffff addiu r4,r4,-0x0001 800ebc68: 0c03ffc2 jal 0x800fff08 800ebc6c: 02052821 addu r5,r16,r5 800ebc70: 0803af57 j 0x800ebd5c 800ebc74: 00000000 nop 800ebc78: 340204d2 ori r2,r0,0x04d2 800ebc7c: 16820037 bne r20,r2,0x800ebd5c 800ebc80: 00000000 nop 800ebc84: 0803af57 j 0x800ebd5c 800ebc88: 2417ffff addiu r23,r0,-0x0001 800ebc8c: 0014a023 subu r20,r0,r20 800ebc90: 00009821 addu r19,r0,r0 800ebc94: 34050001 ori r5,r0,0x0001 800ebc98: 34040003 ori r4,r0,0x0003 800ebc9c: 3c038019 lui r3,0x8019 800ebca0: 24635d1c addiu r3,r3,0x5d1c 800ebca4: 8c620000 lw r2,0x0000(r3) 800ebca8: 00000000 nop 800ebcac: 14450002 bne r2,r5,0x800ebcb8 800ebcb0: 26730001 addiu r19,r19,0x0001 800ebcb4: ac640000 sw r4,0x0000(r3) 800ebcb8: 2a620011 slti r2,r19,0x0011 800ebcbc: 1440fff9 bne r2,r0,0x800ebca4 800ebcc0: 24630400 addiu r3,r3,0x0400 800ebcc4: 1a800025 blez r20,0x800ebd5c 800ebcc8: 00009821 addu r19,r0,r0 800ebccc: 34150008 ori r21,r0,0x0008 800ebcd0: 3c1e8015 lui r30,0x8015 800ebcd4: 27de31c8 addiu r30,r30,0x31c8 800ebcd8: 3c02801d lui r2,0x801d 800ebcdc: 8c42d170 lw r2,-0x2e90(r2) 800ebce0: 34030001 ori r3,r0,0x0001 800ebce4: 02621021 addu r2,r19,r2 800ebce8: 00022280 sll r4,r2,0x0a 800ebcec: 3c018019 lui r1,0x8019 800ebcf0: 00240821 addu r1,r1,r4 800ebcf4: ac235cd8 sw r3,0x5cd8(r1) 800ebcf8: 14550014 bne r2,r21,0x800ebd4c 800ebcfc: 00000000 nop 800ebd00: 1a800012 blez r20,0x800ebd4c 800ebd04: 00008821 addu r17,r0,r0 800ebd08: 03c09021 addu r18,r30,r0 800ebd0c: 02b18023 subu r16,r21,r17 800ebd10: 0c040059 jal 0x80100164 800ebd14: 02002021 addu r4,r16,r0 800ebd18: 10400009 beq r2,r0,0x800ebd40 800ebd1c: 26310001 addiu r17,r17,0x0001 800ebd20: 00101280 sll r2,r16,0x0a 800ebd24: 3c018019 lui r1,0x8019 800ebd28: 00220821 addu r1,r1,r2 800ebd2c: 8c225cd0 lw r2,0x5cd0(r1) 800ebd30: 00000000 nop 800ebd34: 94420038 lhu r2,0x0038(r2) 800ebd38: 00000000 nop 800ebd3c: a6420000 sh r2,0x0000(r18) 800ebd40: 0234102a slt r2,r17,r20 800ebd44: 1440fff1 bne r2,r0,0x800ebd0c 800ebd48: 26520002 addiu r18,r18,0x0002 800ebd4c: 26730001 addiu r19,r19,0x0001 800ebd50: 0274102a slt r2,r19,r20 800ebd54: 1440ffe0 bne r2,r0,0x800ebcd8 800ebd58: 00000000 nop 800ebd5c: 8fa80010 lw r8,0x0010(r29) 800ebd60: 00000000 nop 800ebd64: 8d020034 lw r2,0x0034(r8) 800ebd68: 3c018019 lui r1,0x8019 800ebd6c: ac205c34 sw r0,0x5c34(r1) 800ebd70: a4570000 sh r23,0x0000(r2) 800ebd74: 3c028015 lui r2,0x8015 800ebd78: 8c4232a0 lw r2,0x32a0(r2) 800ebd7c: 00000000 nop 800ebd80: 14400005 bne r2,r0,0x800ebd98 800ebd84: 00000000 nop 800ebd88: 16c00003 bne r22,r0,0x800ebd98 800ebd8c: 00000000 nop 800ebd90: 0c0387ac jal 0x800e1eb0 800ebd94: 00000000 nop 800ebd98: 8fbf004c lw r31,0x004c(r29) 800ebd9c: 8fbe0048 lw r30,0x0048(r29) 800ebda0: 8fb70044 lw r23,0x0044(r29) 800ebda4: 8fb60040 lw r22,0x0040(r29) 800ebda8: 8fb5003c lw r21,0x003c(r29) 800ebdac: 8fb40038 lw r20,0x0038(r29) 800ebdb0: 8fb30034 lw r19,0x0034(r29) 800ebdb4: 8fb20030 lw r18,0x0030(r29) 800ebdb8: 8fb1002c lw r17,0x002c(r29) 800ebdbc: 8fb00028 lw r16,0x0028(r29) 800ebdc0: 27bd0050 addiu r29,r29,0x0050 800ebdc4: 03e00008 jr r31 800ebdc8: 00000000 nop