Button Input Related? (0x68268)

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
#   ROUTINE: ? 0x68268
#       Checks for button input?
#       Parameters:
#           r4 = (in_buttonInput) Button input to check against?

80068268: 3c028008 lui r2,0x8008
8006826c: 8c4255a4 lw r2,0x55a4(r2)                 #   newButtonInput
80068270: 00000000 nop
80068274: 00441024 and r2,r2,r4                     #   newButtonInput & in_buttonInput        
80068278: 1040000b beq r2,r0,0x800682a8             #   if (newButtonInput & in_buttonInput) {      // if newButtonInput contains in_buttonInput
8006827c: 00000000 nop
80068280: 3c018008 lui r1,0x8008
80068284: ac20642c sw r0,0x642c(r1)                 #       *0x8008642c = 0
80068288: 3c018008 lui r1,0x8008
8006828c: ac206428 sw r0,0x6428(r1)                 #       *0x80086428 = 0
80068290: 3c018008 lui r1,0x8008
80068294: ac206424 sw r0,0x6424(r1)                 #       *0x80086424 = 0
80068298: 3c018008 lui r1,0x8008
8006829c: ac206420 sw r0,0x6420(r1)                 #       *0x80086420 = 0
800682a0: 0801a0df j 0x8006837c                     #       return newButtonInput & in_buttonInput;
800682a4: 00000000 nop                              #   }
800682a8: 30821000 andi r2,r4,0x1000
                                                    #   skipNextSection = false
800682ac: 10400019 beq r2,r0,0x80068314             #   if (in_buttonInput & 0x1000) {              // Up button
800682b0: 30824000 andi r2,r4,0x4000
800682b4: 3c028008 lui r2,0x8008
800682b8: 8c4251bc lw r2,0x51bc(r2)                 #       *0x800851bc
800682bc: 00000000 nop
800682c0: 30421000 andi r2,r2,0x1000                #       *0x800851bc & 0x1000
800682c4: 10400010 beq r2,r0,0x80068308             #       if (*0x800851bc & 0x1000) {
800682c8: 00000000 nop
800682cc: 3c068008 lui r6,0x8008
800682d0: 24c66420 addiu r6,r6,0x6420               #           0x80086420
800682d4: 8cc30000 lw r3,0x0000(r6)                 #           *0x80086420
800682d8: 3c028008 lui r2,0x8008
800682dc: 8c426418 lw r2,0x6418(r2)                 #           *0x80086418
800682e0: 24650001 addiu r5,r3,0x0001               #           *0x80086420 + 1
800682e4: 0045102a slt r2,r2,r5
800682e8: 10400009 beq r2,r0,0x80068310
800682ec: acc50000 sw r5,0x0000(r6)                 #           *0x80086420 = *0x80086420 + 1
                                                    #           if (*0x80086418 < *0x80086420) {
800682f0: 3c038008 lui r3,0x8008
800682f4: 8c63641c lw r3,0x641c(r3)                 #               *0x8008641c
800682f8: 34021000 ori r2,r0,0x1000                 #               0x1000
800682fc: 00a31823 subu r3,r5,r3                    #               *0x80086420 - *0x8008641c
80068300: 0801a0df j 0x8006837c
80068304: acc30000 sw r3,0x0000(r6)                 #               *0x80086420 = *0x80086420 - *0x8008641c
                                                    #               return 0x1000;
                                                    #           } else {
                                                    #               skipNextSection = true
                                                    #           }
                                                    #       }
                                                    #       if (not (skipNextSection)) {
80068308: 3c018008 lui r1,0x8008
8006830c: ac206420 sw r0,0x6420(r1)                 #           *0x80086420 = 0;
                                                    #       }
80068310: 30824000 andi r2,r4,0x4000
                                                    #   }
80068314: 10400019 beq r2,r0,0x8006837c             #   if (in_buttonInput & 0x4000) {              // Down button
80068318: 00001021 addu r2,r0,r0
8006831c: 3c028008 lui r2,0x8008
80068320: 8c4251bc lw r2,0x51bc(r2)                 #       *0x800851bc
80068324: 00000000 nop
80068328: 30424000 andi r2,r2,0x4000                #       *0x800851bc & 0x4000
8006832c: 10400010 beq r2,r0,0x80068370             #       if (*0x800851bc & 0x4000) {
80068330: 00000000 nop
80068334: 3c058008 lui r5,0x8008
80068338: 24a56424 addiu r5,r5,0x6424               #           0x80086424
8006833c: 8ca30000 lw r3,0x0000(r5)                 #           *0x80086424
80068340: 3c028008 lui r2,0x8008
80068344: 8c426418 lw r2,0x6418(r2)                 #           *0x80086418
80068348: 24640001 addiu r4,r3,0x0001               #           *0x80086424 + 1
8006834c: 0044102a slt r2,r2,r4
80068350: 10400009 beq r2,r0,0x80068378
80068354: aca40000 sw r4,0x0000(r5)                 #           *0x80086424 = *0x80086424 + 1
                                                    #           if (*0x80086418 >= *0x80086424) return 0;
80068358: 3c038008 lui r3,0x8008
8006835c: 8c63641c lw r3,0x641c(r3)                 #           *0x8008641c
80068360: 34024000 ori r2,r0,0x4000                 #           0x4000
80068364: 00831823 subu r3,r4,r3                    #           *0x80086424 - *0x8008641c
80068368: 0801a0df j 0x8006837c
8006836c: aca30000 sw r3,0x0000(r5)                 #           *0x80086424 = *0x80086424 - *0x8008641c
                                                    #           return 0x4000;
                                                    #       }
80068370: 3c018008 lui r1,0x8008
80068374: ac206424 sw r0,0x6424(r1)                 #       *0x80086424 = 0
                                                    #   }
80068378: 00001021 addu r2,r0,r0                    #   return 0;                          
8006837c: 03e00008 jr r31
80068380: 00000000 nop