Build Inventory Status List Polygons
Jump to navigation
Jump to search
0011d8ac: 27bdff98 addiu r29,r29,0xff98 0011d8b0: afb60058 sw r22,0x0058(r29) 0011d8b4: 0000b021 addu r22,r0,r0 Status Counter = 0 0011d8b8: 00042400 sll r4,r4,0x10 0011d8bc: 00042403 sra r4,r4,0x10 0011d8c0: 00041040 sll r2,r4,0x01 Item ID * 2 0011d8c4: 00441021 addu r2,r2,r4 ID * 3 0011d8c8: 00021080 sll r2,r2,0x02 ID * 12 0011d8cc: afb20048 sw r18,0x0048(r29) 0011d8d0: 00009021 addu r18,r0,r0 Counter = 0 0011d8d4: afbf0064 sw r31,0x0064(r29) 0011d8d8: afbe0060 sw r30,0x0060(r29) 0011d8dc: afb7005c sw r23,0x005c(r29) 0011d8e0: afb50054 sw r21,0x0054(r29) 0011d8e4: afb40050 sw r20,0x0050(r29) 0011d8e8: afb3004c sw r19,0x004c(r29) 0011d8ec: afb10044 sw r17,0x0044(r29) 0011d8f0: afb00040 sw r16,0x0040(r29) 0011d8f4: 3c018006 lui r1,0x8006 0011d8f8: 00220821 addu r1,r1,r2 0011d8fc: 90342ebf lbu r20,0x2ebf(r1) Load Item's Item Attributes ID 0011d900: 3c028006 lui r2,0x8006 0011d904: 244242ce addiu r2,r2,0x42ce 0011d908: 00142040 sll r4,r20,0x01 ID * 2 0011d90c: 00942021 addu r4,r4,r20 ID * 3 0011d910: 000420c0 sll r4,r4,0x03 ID * 24 0011d914: 00942021 addu r4,r4,r20 ID * 25 0011d918: 0c04ac6d jal 0x0012b1b4 Store Data Pointer 0011d91c: 00822021 addu r4,r4,r2 r4 = Item's Status Immunities Data Pointer 0011d920: 0c04ac7b jal 0x0012b1ec Check for Present Flags 0011d924: 34040001 ori r4,r0,0x0001 Flag Counter = 1 0011d928: 10400002 beq r2,r0,0x0011d934 Branch if Status isn't present 0011d92c: 26520001 addiu r18,r18,0x0001 Counter ++ 0011d930: 26d60001 addiu r22,r22,0x0001 Status Counter ++ 0011d934: 2a420028 slti r2,r18,0x0028 0011d938: 1440fff9 bne r2,r0,0x0011d920 Branch if Counter < 0x28 0011d93c: 00148040 sll r16,r20,0x01 ID * 2 0011d940: 02148021 addu r16,r16,r20 ID * 3 0011d944: 001080c0 sll r16,r16,0x03 ID * 24 0011d948: 02148021 addu r16,r16,r20 ID * 25 0011d94c: 3c118006 lui r17,0x8006 0011d950: 263142c9 addiu r17,r17,0x42c9 0011d954: 0c04ac6d jal 0x0012b1b4 Store Data Pointer 0011d958: 02112021 addu r4,r16,r17 r4 = Item's Innate Status Data Pointer 0011d95c: 2631000a addiu r17,r17,0x000a 0011d960: 0c04ac74 jal 0x0012b1d0 Store Data Pointer 2 0011d964: 02112021 addu r4,r16,r17 r4 = Item's Starting Status Data Pointer 0011d968: 00009021 addu r18,r0,r0 Counter = 0 0011d96c: 0c04ac7b jal 0x0012b1ec Check for Present Flags 0011d970: 34040001 ori r4,r0,0x0001 Flag Counter = 1 0011d974: 00408821 addu r17,r2,r0 r17 = Present Flags 0011d978: 0c04acd5 jal 0x0012b354 Check for Present Flags 2 0011d97c: 34040001 ori r4,r0,0x0001 Flag Counter = 1 0011d980: 02228825 or r17,r17,r2 Present Flags += new Present Flags 0011d984: 12200002 beq r17,r0,0x0011d990 Branch if Flags aren't present 0011d988: 26520001 addiu r18,r18,0x0001 Counter ++ 0011d98c: 26d60001 addiu r22,r22,0x0001 Status Counter ++ 0011d990: 2a420028 slti r2,r18,0x0028 0011d994: 1440fff5 bne r2,r0,0x0011d96c Branch if Counter < 0x28 0011d998: 00161400 sll r2,r22,0x10 0011d99c: 00021403 sra r2,r2,0x10 0011d9a0: 2842000d slti r2,r2,0x000d 0011d9a4: 14400002 bne r2,r0,0x0011d9b0 Branch if Status Counter < 0xd 0011d9a8: 341100c2 ori r17,r0,0x00c2 Status Y Draw Location = 0xc2 0011d9ac: 3416000c ori r22,r0,0x000c Status Counter = 0xc 0011d9b0: 3c03801d lui r3,0x801d 0011d9b4: 90638518 lbu r3,-0x7ae8(r3) Load Item Type? 0011d9b8: 34020003 ori r2,r0,0x0003 0011d9bc: 14620002 bne r3,r2,0x0011d9c8 Branch if Item isn't an Accessory 0011d9c0: 00168400 sll r16,r22,0x10 0011d9c4: 341100da ori r17,r0,0x00da Status Y Draw Location = 0xda 0011d9c8: 00108403 sra r16,r16,0x10 0011d9cc: 001010c0 sll r2,r16,0x03 Status Counter * 8 0011d9d0: 00501021 addu r2,r2,r16 Status Counter * 9 0011d9d4: 02229823 subu r19,r17,r2 Status Y Draw Location - Status Counter * 9 0011d9d8: 341e00d1 ori r30,r0,0x00d1 x draw location = 0xd1 0011d9dc: 00002021 addu r4,r0,r0 r4 = 0 0011d9e0: 00002821 addu r5,r0,r0 r5 = 0 0011d9e4: 34060180 ori r6,r0,0x0180 r6 = 0x180 0011d9e8: 0c008e63 jal 0x0002398c P00 GetTpage <-- returns tpage 6 (textbox text + window graphics) 0011d9ec: 00003821 addu r7,r0,r0 r7 = 0 0011d9f0: 0000a821 addu r21,r0,r0 r21 = 0 0011d9f4: 00142040 sll r4,r20,0x01 ID * 2 0011d9f8: 00942021 addu r4,r4,r20 ID * 3 0011d9fc: 000420c0 sll r4,r4,0x03 ID * 24 0011da00: 00942021 addu r4,r4,r20 ID * 25 0011da04: 3c038006 lui r3,0x8006 0011da08: 246342ce addiu r3,r3,0x42ce 0011da0c: 3c088019 lui r8,0x8019 0011da10: 9508df8a lhu r8,-0x2076(r8) Load TPAGE? 0011da14: 00832021 addu r4,r4,r3 r4 = Item's Status Immunities Data Pointer 0011da18: a7a20030 sh r2,0x0030(r29) Store tpage ID = 6 0011da1c: 0c04ac6d jal 0x0012b1b4 Store Data Pointer 0011da20: a7a80028 sh r8,0x0028(r29) Store second TPAGE we're working with today 0011da24: 00009021 addu r18,r0,r0 Counter = 0 0011da28: 34173fd9 ori r23,r0,0x3fd9 r23 = 0x3fd9 0011da2c: afb00038 sw r16,0x0038(r29) Store Status Counter 0011da30: 34100008 ori r16,r0,0x0008 r16 = 8 0011da34: 00008821 addu r17,r0,r0 Status Mod = 0
<loop> status immunity list
0011da38: 8fa80038 lw r8,0x0038(r29) Load Status Counter 0011da3c: 00000000 nop 0011da40: 02a8102a slt r2,r21,r8 0011da44: 10400033 beq r2,r0,0x0011db14 Branch if r21 >= Status Counter 0011da48: 00000000 nop 0011da4c: 0c04ac7b jal 0x0012b1ec Check for Present Flags 0011da50: 34040001 ori r4,r0,0x0001 Flag Counter = 1 0011da54: 1040002c beq r2,r0,0x0011db08 Branch if Flags aren't present 0011da58: 26520001 addiu r18,r18,0x0001 Counter ++ 0011da5c: 27a40020 addiu r4,r29,0x0020 r4 = Stack Pointer + 0x20 0011da60: 340500a9 ori r5,r0,0x00a9 u0 = 0xa9 0011da64: 340600f5 ori r6,r0,0x00f5 v0 = 0xf5 (these, shouldn't correspond to anything yet. the building here probably has yet to be done.) 0011da68: 27c2fff9 addiu r2,r30,0xfff9 list x draw location - 7 0011da6c: a7a20020 sh r2,0x0020(r29) store rectangle.x0 0011da70: 26620001 addiu r2,r19,0x0001 list y draw location + 1 0011da74: a7a20022 sh r2,0x0022(r29) store rectangle.y0 0011da78: 97a20030 lhu r2,0x0030(r29) Load TPAGE 0011da7c: 00003821 addu r7,r0,r0 rgb tint pointer = NULL 0011da80: a7b00024 sh r16,0x0024(r29) width = 8 0011da84: a7b00026 sh r16,0x0026(r29) height = 8 0011da88: afa00010 sw r0,0x0010(r29) Store not semi-transparent 0011da8c: afb70018 sw r23,0x0018(r29) Store CLUT = 0x3fd9 (I would guess one of FRAME.BIN's colour palettes) 0011da90: afb0001c sw r16,0x001c(r29) OTAG depth = 8 0011da94: 0c04b1aa jal 0x0012c6a8 Build Menu Icon Polygons <-- builds blue inventory "immune status" icon 0011da98: afa20014 sw r2,0x0014(r29) store TPAGE 0011da9c: 27a40020 addiu r4,r29,0x0020 r4 = point to rectangle 0011daa0: 02601021 addu r2,r19,r0 0011daa4: a7be0020 sh r30,0x0020(r29) x0 0011daa8: a7a20022 sh r2,0x0022(r29) y0 0011daac: 3c018019 lui r1,0x8019 0011dab0: 00310821 addu r1,r1,r17 0011dab4: 9422cf6c lhu r2,-0x3094(r1) 0011dab8: 97a80028 lhu r8,0x0028(r29) 0011dabc: 00003821 addu r7,r0,r0 0011dac0: a7a20024 sh r2,0x0024(r29) width 0011dac4: 3c018019 lui r1,0x8019 0011dac8: 00310821 addu r1,r1,r17 0011dacc: 9422cf6e lhu r2,-0x3092(r1) 0011dad0: 26730009 addiu r19,r19,0x0009 0011dad4: a7a20026 sh r2,0x0026(r29) height 0011dad8: 3c018019 lui r1,0x8019 0011dadc: 00310821 addu r1,r1,r17 0011dae0: 8425cf68 lh r5,-0x3098(r1) upper left corner u0 0011dae4: 3c018019 lui r1,0x8019 0011dae8: 00310821 addu r1,r1,r17 0011daec: 8426cf6a lh r6,-0x3096(r1) upper left corner v0 (built somewhere else?) 0011daf0: 26b50001 addiu r21,r21,0x0001 0011daf4: afa00010 sw r0,0x0010(r29) Store not semi transparent 0011daf8: afa80014 sw r8,0x0014(r29) store TPAGE 0011dafc: afb70018 sw r23,0x0018(r29) 0011db00: 0c04b1aa jal 0x0012c6a8 Build Menu Icon Polygons <-- builds blue inventory "immune status" text 0011db04: afb0001c sw r16,0x001c(r29) 0011db08: 2a420028 slti r2,r18,0x0028 0011db0c: 1440ffca bne r2,r0,0x0011da38 Branch if Counter < 0x28 0011db10: 26310008 addiu r17,r17,0x0008 Status Mod += 8
</loop>
0011db14: 00148040 sll r16,r20,0x01 0011db18: 02148021 addu r16,r16,r20 0011db1c: 001080c0 sll r16,r16,0x03 0011db20: 02148021 addu r16,r16,r20 0011db24: 3c118006 lui r17,0x8006 0011db28: 263142c9 addiu r17,r17,0x42c9 0011db2c: 0c04ac6d jal 0x0012b1b4 Store Data Pointer 0011db30: 02112021 addu r4,r16,r17 0011db34: 2631000a addiu r17,r17,0x000a 0011db38: 0c04ac74 jal 0x0012b1d0 Store Data Pointer 2 0011db3c: 02112021 addu r4,r16,r17 0011db40: 00009021 addu r18,r0,r0 0011db44: 00161400 sll r2,r22,0x10 0011db48: 0002bc03 sra r23,r2,0x10 0011db4c: 34163fd8 ori r22,r0,0x3fd8 0011db50: 34140008 ori r20,r0,0x0008 0011db54: 00008021 addu r16,r0,r0
<loop> status innate list
0011db58: 02b7102a slt r2,r21,r23 0011db5c: 10400037 beq r2,r0,0x0011dc3c 0011db60: 00000000 nop 0011db64: 0c04ac7b jal 0x0012b1ec Check for Present Flags 0011db68: 34040001 ori r4,r0,0x0001 0011db6c: 00408821 addu r17,r2,r0 flag count? 0011db70: 0c04acd5 jal 0x0012b354 Check for Present Flags 2 0011db74: 34040001 ori r4,r0,0x0001 0011db78: 02228825 or r17,r17,r2 bit flag merge 0011db7c: 1220002c beq r17,r0,0x0011dc30 loop if none 0011db80: 26520001 addiu r18,r18,0x0001 status counter ++ 0011db84: 27a40020 addiu r4,r29,0x0020 0011db88: 340500a0 ori r5,r0,0x00a0 u0 = 0xa0 0011db8c: 340600f5 ori r6,r0,0x00f5 v0 = 0xf5 0011db90: 27c2fff8 addiu r2,r30,0xfff8 xpos - 0x8 0011db94: a7a20020 sh r2,0x0020(r29) store x pos 0011db98: 26620001 addiu r2,r19,0x0001 ypos + 0x1 0011db9c: a7a20022 sh r2,0x0022(r29) store y pos 0011dba0: 97a20030 lhu r2,0x0030(r29) 0011dba4: 00003821 addu r7,r0,r0 rgb tint pointer = NULL 0011dba8: a7b40024 sh r20,0x0024(r29) 0011dbac: a7b40026 sh r20,0x0026(r29) store width & height = 8 0011dbb0: afa00010 sw r0,0x0010(r29) Store not semi-transparent 0011dbb4: afb60018 sw r22,0x0018(r29) store CLUT = 0x3fd8 0011dbb8: afb4001c sw r20,0x001c(r29) store otag depth = 8 0011dbbc: 0c04b1aa jal 0x0012c6a8 Build Menu Icon Polygons <-- builds yellow inventory "innate status" icon 0011dbc0: afa20014 sw r2,0x0014(r29) store TPAGE = 6 0011dbc4: 27a40020 addiu r4,r29,0x0020 0011dbc8: 02601021 addu r2,r19,r0 0011dbcc: a7be0020 sh r30,0x0020(r29) 0011dbd0: a7a20022 sh r2,0x0022(r29) 0011dbd4: 3c018019 lui r1,0x8019 0011dbd8: 00300821 addu r1,r1,r16 0011dbdc: 9422cf6c lhu r2,-0x3094(r1) 0011dbe0: 97a80028 lhu r8,0x0028(r29) 0011dbe4: 00003821 addu r7,r0,r0 0011dbe8: a7a20024 sh r2,0x0024(r29) 0011dbec: 3c018019 lui r1,0x8019 0011dbf0: 00300821 addu r1,r1,r16 0011dbf4: 9422cf6e lhu r2,-0x3092(r1) 0011dbf8: 26730009 addiu r19,r19,0x0009 0011dbfc: a7a20026 sh r2,0x0026(r29) 0011dc00: 3c018019 lui r1,0x8019 0011dc04: 00300821 addu r1,r1,r16 0011dc08: 8425cf68 lh r5,-0x3098(r1) 0011dc0c: 3c018019 lui r1,0x8019 0011dc10: 00300821 addu r1,r1,r16 0011dc14: 8426cf6a lh r6,-0x3096(r1) 0011dc18: 26b50001 addiu r21,r21,0x0001 0011dc1c: afa00010 sw r0,0x0010(r29) Store 0 (Disable 0x2) 0011dc20: afa80014 sw r8,0x0014(r29) 0011dc24: afb60018 sw r22,0x0018(r29) 0011dc28: 0c04b1aa jal 0x0012c6a8 Build Menu Icon Polygons <-- builds yellow inventory "innate status" text 0011dc2c: afb4001c sw r20,0x001c(r29) 0011dc30: 2a420028 slti r2,r18,0x0028 0011dc34: 1440ffc8 bne r2,r0,0x0011db58 0011dc38: 26100008 addiu r16,r16,0x0008
</loop>
0011dc3c: 8fbf0064 lw r31,0x0064(r29) 0011dc40: 8fbe0060 lw r30,0x0060(r29) 0011dc44: 8fb7005c lw r23,0x005c(r29) 0011dc48: 8fb60058 lw r22,0x0058(r29) 0011dc4c: 8fb50054 lw r21,0x0054(r29) 0011dc50: 8fb40050 lw r20,0x0050(r29) 0011dc54: 8fb3004c lw r19,0x004c(r29) 0011dc58: 8fb20048 lw r18,0x0048(r29) 0011dc5c: 8fb10044 lw r17,0x0044(r29) 0011dc60: 8fb00040 lw r16,0x0040(r29) 0011dc64: 27bd0068 addiu r29,r29,0x0068 0011dc68: 03e00008 jr r31 0011dc6c: 00000000 nop