Difference between revisions of "Jump animation Start"
Jump to navigation
Jump to search
m (link) |
m |
||
Line 6: | Line 6: | ||
0008a368: afbf0038 sw r31,0x0038(r29) | 0008a368: afbf0038 sw r31,0x0038(r29) | ||
0008a36c: afb10034 sw r17,0x0034(r29) | 0008a36c: afb10034 sw r17,0x0034(r29) | ||
− | 0008a370: 8e11008c lw r17,0x008c(r16) | + | 0008a370: 8e11008c lw r17,0x008c(r16) load distortion var |
0008a374: 8e020028 lw r2,0x0028(r16) | 0008a374: 8e020028 lw r2,0x0028(r16) | ||
0008a378: 8e03002c lw r3,0x002c(r16) | 0008a378: 8e03002c lw r3,0x002c(r16) | ||
Line 23: | Line 23: | ||
0008a3ac: 0802291a j 0x0008a468 | 0008a3ac: 0802291a j 0x0008a468 | ||
0008a3b0: 00000000 nop | 0008a3b0: 00000000 nop | ||
− | 0008a3b4: 0c01f4fd jal 0x0007d3f4 | + | |
+ | if counter = 0 | ||
+ | 0008a3b4: 0c01f4fd jal 0x0007d3f4 [[0007d3f4 - 0007d474]] - returns height of mount | ||
0008a3b8: 02002021 addu r4,r16,r0 | 0008a3b8: 02002021 addu r4,r16,r0 | ||
− | 0008a3bc: 00021023 subu r2,r0,r2 | + | 0008a3bc: 00021023 subu r2,r0,r2 height of mount |
0008a3c0: 3c038009 lui r3,0x8009 | 0008a3c0: 3c038009 lui r3,0x8009 | ||
− | 0008a3c4: 8c636128 lw r3,0x6128(r3) | + | 0008a3c4: 8c636128 lw r3,0x6128(r3) relevant to weapon sheathe check? |
0008a3c8: 24420120 addiu r2,r2,0x0120 | 0008a3c8: 24420120 addiu r2,r2,0x0120 | ||
0008a3cc: 00430018 mult r2,r3 | 0008a3cc: 00430018 mult r2,r3 | ||
0008a3d0: 00002012 mflo r4 | 0008a3d0: 00002012 mflo r4 | ||
− | 0008a3d4: 0c00709a jal 0x0001c268 | + | 0008a3d4: 0c00709a jal 0x0001c268 [[Get_Square_root_of_r4_dealing_with_4096]] |
− | 0008a3d8: 00042040 sll r4,r4,0x01 | + | 0008a3d8: 00042040 sll r4,r4,0x01 obtain sqrt(*80096128 x abs(Mount Height mod)) |
0008a3dc: 02002021 addu r4,r16,r0 | 0008a3dc: 02002021 addu r4,r16,r0 | ||
0008a3e0: 3c058009 lui r5,0x8009 | 0008a3e0: 3c058009 lui r5,0x8009 | ||
0008a3e4: 8ca56128 lw r5,0x6128(r5) | 0008a3e4: 8ca56128 lw r5,0x6128(r5) | ||
− | 0008a3e8: 00021823 subu r3,r0,r2 | + | 0008a3e8: 00021823 subu r3,r0,r2 negative of square root? |
− | 0008a3ec: 0045001a div r2,r5 | + | 0008a3ec: 0045001a div r2,r5 square root/*80096128 |
0008a3f0: 00008812 mflo r17 | 0008a3f0: 00008812 mflo r17 | ||
0008a3f4: 0c01fc90 jal 0x0007f240 | 0008a3f4: 0c01fc90 jal 0x0007f240 | ||
− | 0008a3f8: afa30024 sw r3,0x0024(r29) | + | 0008a3f8: afa30024 sw r3,0x0024(r29) store negative of root in stack |
− | 0008a3fc: 8e020144 lw r2,0x0144(r16) | + | 0008a3fc: 8e020144 lw r2,0x0144(r16) load status flags 5 and 6, (blank 7 and 8 sets) |
− | 0008a400: 8e030088 lw r3,0x0088(r16) | + | 0008a400: 8e030088 lw r3,0x0088(r16) load distortion counter |
− | 0008a404: 34420200 ori r2,r2,0x0200 | + | 0008a404: 34420200 ori r2,r2,0x0200 sets flag 0x20 in status flags 6? (no use?) |
0008a408: 24630001 addiu r3,r3,0x0001 | 0008a408: 24630001 addiu r3,r3,0x0001 | ||
− | 0008a40c: ae020144 sw r2,0x0144(r16) | + | 0008a40c: ae020144 sw r2,0x0144(r16) store again |
− | 0008a410: ae030088 sw r3,0x0088(r16) | + | 0008a410: ae030088 sw r3,0x0088(r16) increment distortion counter |
− | 0008a414: 1a20000d blez r17,0x0008a44c | + | |
− | 0008a418: 34040002 ori r4,r0,0x0002 | + | if counter = 1, 0 |
− | 0008a41c: 8e02001c lw r2,0x001c(r16) | + | 0008a414: 1a20000d blez r17,0x0008a44c branch if square root/* <= 0 |
− | 0008a420: 8fa30024 lw r3,0x0024(r29) | + | 0008a418: 34040002 ori r4,r0,0x0002 r4 = 2 |
+ | 0008a41c: 8e02001c lw r2,0x001c(r16) load height mod | ||
+ | 0008a420: 8fa30024 lw r3,0x0024(r29) load negative of root from stack? | ||
0008a424: 00000000 nop | 0008a424: 00000000 nop | ||
− | 0008a428: 00431021 addu r2,r2,r3 | + | 0008a428: 00431021 addu r2,r2,r3 move unit further towards height of mount |
− | 0008a42c: ae02001c sw r2,0x001c(r16) | + | 0008a42c: ae02001c sw r2,0x001c(r16) store |
0008a430: 8fa20024 lw r2,0x0024(r29) | 0008a430: 8fa20024 lw r2,0x0024(r29) | ||
0008a434: 3c038009 lui r3,0x8009 | 0008a434: 3c038009 lui r3,0x8009 | ||
0008a438: 8c636128 lw r3,0x6128(r3) | 0008a438: 8c636128 lw r3,0x6128(r3) | ||
0008a43c: 00000000 nop | 0008a43c: 00000000 nop | ||
− | 0008a440: 00431021 addu r2,r2,r3 | + | 0008a440: 00431021 addu r2,r2,r3 add square root and 80096128? |
0008a444: 08022919 j 0x0008a464 | 0008a444: 08022919 j 0x0008a464 | ||
− | 0008a448: afa20024 sw r2,0x0024(r29) | + | 0008a448: afa20024 sw r2,0x0024(r29) store again |
− | 0008a44c: 86050070 lh r5,0x0070(r16) | + | |
− | 0008a450: 02003021 addu r6,r16,r0 | + | if r17 <= 0 |
− | 0008a454: ae0002e8 sw r0,0x02e8(r16) | + | 0008a44c: 86050070 lh r5,0x0070(r16) load current facing |
− | 0008a458: a2000298 sb r0,0x0298(r16) | + | 0008a450: 02003021 addu r6,r16,r0 move unit data into r6 |
− | 0008a45c: 0c020662 jal 0x00081988 | + | 0008a454: ae0002e8 sw r0,0x02e8(r16) clear unused? |
− | 0008a460: a2000087 sb r0,0x0087(r16) | + | 0008a458: a2000298 sb r0,0x0298(r16) clear shadow |
− | 0008a464: 2631ffff addiu r17,r17,0xffff | + | 0008a45c: 0c020662 jal 0x00081988 [[Store unit animation/facing/someothervalue]] - sets 0x20 flag in motion flags? first I've seen of it... mounted? |
+ | 0008a460: a2000087 sb r0,0x0087(r16) clear distortion type | ||
+ | 0008a464: 2631ffff addiu r17,r17,0xffff square root, thing? - 1 | ||
0008a468: 8fa20020 lw r2,0x0020(r29) | 0008a468: 8fa20020 lw r2,0x0020(r29) | ||
0008a46c: 8fa30024 lw r3,0x0024(r29) | 0008a46c: 8fa30024 lw r3,0x0024(r29) | ||
Line 78: | Line 84: | ||
0008a488: 0c02255f jal 0x0008957c | 0008a488: 0c02255f jal 0x0008957c | ||
0008a48c: 02002021 addu r4,r16,r0 | 0008a48c: 02002021 addu r4,r16,r0 | ||
− | 0008a490: ae11008c sw r17,0x008c(r16) | + | 0008a490: ae11008c sw r17,0x008c(r16) store new distortion var |
0008a494: 8fbf0038 lw r31,0x0038(r29) | 0008a494: 8fbf0038 lw r31,0x0038(r29) | ||
0008a498: 8fb10034 lw r17,0x0034(r29) | 0008a498: 8fb10034 lw r17,0x0034(r29) |
Revision as of 10:50, 10 October 2022
0008a35c: 27bdffc0 addiu r29,r29,0xffc0 0008a360: afb00030 sw r16,0x0030(r29) 0008a364: 00808021 addu r16,r4,r0 0008a368: afbf0038 sw r31,0x0038(r29) 0008a36c: afb10034 sw r17,0x0034(r29) 0008a370: 8e11008c lw r17,0x008c(r16) load distortion var 0008a374: 8e020028 lw r2,0x0028(r16) 0008a378: 8e03002c lw r3,0x002c(r16) 0008a37c: 8e040030 lw r4,0x0030(r16) 0008a380: 8e050034 lw r5,0x0034(r16) 0008a384: afa20020 sw r2,0x0020(r29) 0008a388: afa30024 sw r3,0x0024(r29) 0008a38c: afa40028 sw r4,0x0028(r29) 0008a390: afa5002c sw r5,0x002c(r29) 0008a394: 8e030088 lw r3,0x0088(r16) 0008a398: 00000000 nop 0008a39c: 10600005 beq r3,r0,0x0008a3b4 0008a3a0: 34020001 ori r2,r0,0x0001 0008a3a4: 1062001b beq r3,r2,0x0008a414 0008a3a8: 00000000 nop 0008a3ac: 0802291a j 0x0008a468 0008a3b0: 00000000 nop
if counter = 0 0008a3b4: 0c01f4fd jal 0x0007d3f4 0007d3f4 - 0007d474 - returns height of mount 0008a3b8: 02002021 addu r4,r16,r0 0008a3bc: 00021023 subu r2,r0,r2 height of mount 0008a3c0: 3c038009 lui r3,0x8009 0008a3c4: 8c636128 lw r3,0x6128(r3) relevant to weapon sheathe check? 0008a3c8: 24420120 addiu r2,r2,0x0120 0008a3cc: 00430018 mult r2,r3 0008a3d0: 00002012 mflo r4 0008a3d4: 0c00709a jal 0x0001c268 Get_Square_root_of_r4_dealing_with_4096 0008a3d8: 00042040 sll r4,r4,0x01 obtain sqrt(*80096128 x abs(Mount Height mod)) 0008a3dc: 02002021 addu r4,r16,r0 0008a3e0: 3c058009 lui r5,0x8009 0008a3e4: 8ca56128 lw r5,0x6128(r5) 0008a3e8: 00021823 subu r3,r0,r2 negative of square root? 0008a3ec: 0045001a div r2,r5 square root/*80096128 0008a3f0: 00008812 mflo r17 0008a3f4: 0c01fc90 jal 0x0007f240 0008a3f8: afa30024 sw r3,0x0024(r29) store negative of root in stack 0008a3fc: 8e020144 lw r2,0x0144(r16) load status flags 5 and 6, (blank 7 and 8 sets) 0008a400: 8e030088 lw r3,0x0088(r16) load distortion counter 0008a404: 34420200 ori r2,r2,0x0200 sets flag 0x20 in status flags 6? (no use?) 0008a408: 24630001 addiu r3,r3,0x0001 0008a40c: ae020144 sw r2,0x0144(r16) store again 0008a410: ae030088 sw r3,0x0088(r16) increment distortion counter
if counter = 1, 0 0008a414: 1a20000d blez r17,0x0008a44c branch if square root/* <= 0 0008a418: 34040002 ori r4,r0,0x0002 r4 = 2 0008a41c: 8e02001c lw r2,0x001c(r16) load height mod 0008a420: 8fa30024 lw r3,0x0024(r29) load negative of root from stack? 0008a424: 00000000 nop 0008a428: 00431021 addu r2,r2,r3 move unit further towards height of mount 0008a42c: ae02001c sw r2,0x001c(r16) store 0008a430: 8fa20024 lw r2,0x0024(r29) 0008a434: 3c038009 lui r3,0x8009 0008a438: 8c636128 lw r3,0x6128(r3) 0008a43c: 00000000 nop 0008a440: 00431021 addu r2,r2,r3 add square root and 80096128? 0008a444: 08022919 j 0x0008a464 0008a448: afa20024 sw r2,0x0024(r29) store again
if r17 <= 0 0008a44c: 86050070 lh r5,0x0070(r16) load current facing 0008a450: 02003021 addu r6,r16,r0 move unit data into r6 0008a454: ae0002e8 sw r0,0x02e8(r16) clear unused? 0008a458: a2000298 sb r0,0x0298(r16) clear shadow 0008a45c: 0c020662 jal 0x00081988 Store unit animation/facing/someothervalue - sets 0x20 flag in motion flags? first I've seen of it... mounted? 0008a460: a2000087 sb r0,0x0087(r16) clear distortion type 0008a464: 2631ffff addiu r17,r17,0xffff square root, thing? - 1 0008a468: 8fa20020 lw r2,0x0020(r29) 0008a46c: 8fa30024 lw r3,0x0024(r29) 0008a470: 8fa40028 lw r4,0x0028(r29) 0008a474: 8fa5002c lw r5,0x002c(r29) 0008a478: ae020028 sw r2,0x0028(r16) 0008a47c: ae03002c sw r3,0x002c(r16) 0008a480: ae040030 sw r4,0x0030(r16) 0008a484: ae050034 sw r5,0x0034(r16) 0008a488: 0c02255f jal 0x0008957c 0008a48c: 02002021 addu r4,r16,r0 0008a490: ae11008c sw r17,0x008c(r16) store new distortion var 0008a494: 8fbf0038 lw r31,0x0038(r29) 0008a498: 8fb10034 lw r17,0x0034(r29) 0008a49c: 8fb00030 lw r16,0x0030(r29) 0008a4a0: 27bd0040 addiu r29,r29,0x0040 0008a4a4: 03e00008 jr r31 0008a4a8: 00000000 nop