Image Loading Setup (0xfdaa4)

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
#   ROUTINE: Image loading setup (0xfdaa4)
#   This routine is an analog to Image Loading Setup (0x14a5e8) in BATTLE.BIN.
#   Parameters:
#       r4 = (displayPointer) Reference to struct for image display: 52 bytes

800fdaa4: 27bdffe8 addiu r29,r29,-0x0018
800fdaa8: 3c028015 lui r2,0x8015
800fdaac: 944232d6 lhu r2,0x32d6(r2)                #   0x801532d6
800fdab0: 00803821 addu r7,r4,r0                    #   displayPointer
800fdab4: 10400005 beq r2,r0,0x800fdacc             #   if (0x801532d6 != 0) {
800fdab8: afbf0010 sw r31,0x0010(r29)
800fdabc: 0c0092f6 jal 0x80024bd8                   #       SYS DrawPrim (displayPointer);
800fdac0: 00000000 nop
800fdac4: 0803f6c3 j 0x800fdb0c
800fdac8: 00000000 nop                              #   } else {
800fdacc: 3c0400ff lui r4,0x00ff
800fdad0: 3484ffff ori r4,r4,0xffff                 #       0x00ffffff
800fdad4: 3c06ff00 lui r6,0xff00                    #       0xff000000
800fdad8: 3c05801d lui r5,0x801d
800fdadc: 8ca5d814 lw r5,-0x27ec(r5)                #       *0x801cd814
800fdae0: 8ce30000 lw r3,0x0000(r7)                 #       *displayPointer
800fdae4: 8ca20000 lw r2,0x0000(r5)                 #       **0x801cd814
800fdae8: 00661824 and r3,r3,r6                     #       *displayPointer & 0xff000000
800fdaec: 00441024 and r2,r2,r4                     #       **0x801cd814 & 0x00ffffff
800fdaf0: 00621825 or r3,r3,r2                      #       (*displayPointer & 0xff000000) | (**0x801cd814 & 0x00ffffff)
800fdaf4: ace30000 sw r3,0x0000(r7)                 #       *displayPointer = (*displayPointer & 0xff000000) | (**0x801cd814 & 0x00ffffff)
800fdaf8: 8ca20000 lw r2,0x0000(r5)                 #       **0x801cd814
800fdafc: 00e42024 and r4,r7,r4                     #       displayPointer & 0x00ffffff
800fdb00: 00461024 and r2,r2,r6                     #       **0x801cd814 & 0xff000000
800fdb04: 00441025 or r2,r2,r4                      #       (**0x801cd814 & 0xff000000) | (displayPointer & 0x00ffffff)
800fdb08: aca20000 sw r2,0x0000(r5)                 #       *0x801cd814 = (**0x801cd814 & 0xff000000) | (displayPointer & 0x00ffffff)
                                                    #   }
800fdb0c: 8fbf0010 lw r31,0x0010(r29)
800fdb10: 27bd0018 addiu r29,r29,0x0018
800fdb14: 03e00008 jr r31
800fdb18: 00000000 nop