1
0
mirror of https://github.com/zeldaret/oot.git synced 2024-09-21 04:24:43 +00:00

Match the 2 remaining functions in Obj_Bean (#886)

This commit is contained in:
Roman971 2021-08-04 19:19:43 +02:00 committed by GitHub
parent 75b72af8de
commit ba4d5013a6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 5 additions and 279 deletions

View File

@ -1,183 +0,0 @@
glabel ObjBean_FollowPath
/* 00574 80B8EFF4 27BDFF88 */ addiu $sp, $sp, 0xFF88 ## $sp = FFFFFF88
/* 00578 80B8EFF8 AFB00018 */ sw $s0, 0x0018($sp)
/* 0057C 80B8EFFC 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00580 80B8F000 AFBF001C */ sw $ra, 0x001C($sp)
/* 00584 80B8F004 AFA5007C */ sw $a1, 0x007C($sp)
/* 00588 80B8F008 920E01F6 */ lbu $t6, 0x01F6($s0) ## 000001F6
/* 0058C 80B8F00C 3C1880B9 */ lui $t8, %hi(sBeanSpeeds) ## $t8 = 80B90000
/* 00590 80B8F010 27180E80 */ addiu $t8, $t8, %lo(sBeanSpeeds) ## $t8 = 80B90E80
/* 00594 80B8F014 000E78C0 */ sll $t7, $t6, 3
/* 00598 80B8F018 01F81021 */ addu $v0, $t7, $t8
/* 0059C 80B8F01C 8C450000 */ lw $a1, 0x0000($v0) ## 00000000
/* 005A0 80B8F020 8C460004 */ lw $a2, 0x0004($v0) ## 00000004
/* 005A4 80B8F024 0C01DE80 */ jal Math_StepToF
/* 005A8 80B8F028 24840068 */ addiu $a0, $a0, 0x0068 ## $a0 = 00000068
/* 005AC 80B8F02C 8FB9007C */ lw $t9, 0x007C($sp)
/* 005B0 80B8F030 8609001C */ lh $t1, 0x001C($s0) ## 0000001C
/* 005B4 80B8F034 3C080001 */ lui $t0, 0x0001 ## $t0 = 00010000
/* 005B8 80B8F038 01194021 */ addu $t0, $t0, $t9
/* 005BC 80B8F03C 8D081E08 */ lw $t0, 0x1E08($t0) ## 00011E08
/* 005C0 80B8F040 00095203 */ sra $t2, $t1, 8
/* 005C4 80B8F044 314B001F */ andi $t3, $t2, 0x001F ## $t3 = 00000000
/* 005C8 80B8F048 000B60C0 */ sll $t4, $t3, 3
/* 005CC 80B8F04C 010C3021 */ addu $a2, $t0, $t4
/* 005D0 80B8F050 8CC30004 */ lw $v1, 0x0004($a2) ## 00000004
/* 005D4 80B8F054 860A01F4 */ lh $t2, 0x01F4($s0) ## 000001F4
/* 005D8 80B8F058 3C188016 */ lui $t8, %hi(gSegments)
/* 005DC 80B8F05C 00036900 */ sll $t5, $v1, 4
/* 005E0 80B8F060 000D7702 */ srl $t6, $t5, 28
/* 005E4 80B8F064 000E7880 */ sll $t7, $t6, 2
/* 005E8 80B8F068 030FC021 */ addu $t8, $t8, $t7
/* 005EC 80B8F06C 8F186FA8 */ lw $t8, %lo(gSegments)($t8)
/* 005F0 80B8F070 3C0100FF */ lui $at, 0x00FF ## $at = 00FF0000
/* 005F4 80B8F074 3421FFFF */ ori $at, $at, 0xFFFF ## $at = 00FFFFFF
/* 005F8 80B8F078 000A5880 */ sll $t3, $t2, 2
/* 005FC 80B8F07C 0061C824 */ and $t9, $v1, $at
/* 00600 80B8F080 016A5823 */ subu $t3, $t3, $t2
/* 00604 80B8F084 000B5840 */ sll $t3, $t3, 1
/* 00608 80B8F088 03194821 */ addu $t1, $t8, $t9
/* 0060C 80B8F08C 012B2821 */ addu $a1, $t1, $t3
/* 00610 80B8F090 3C018000 */ lui $at, 0x8000 ## $at = 80000000
/* 00614 80B8F094 00A12821 */ addu $a1, $a1, $at
/* 00618 80B8F098 AFA50054 */ sw $a1, 0x0054($sp)
/* 0061C 80B8F09C AFA60074 */ sw $a2, 0x0074($sp)
/* 00620 80B8F0A0 0C01DF97 */ jal Math_Vec3s_ToVec3f
## Vec3f_CopyFrameTable
/* 00624 80B8F0A4 27A4005C */ addiu $a0, $sp, 0x005C ## $a0 = FFFFFFE4
/* 00628 80B8F0A8 260501D8 */ addiu $a1, $s0, 0x01D8 ## $a1 = 000001D8
/* 0062C 80B8F0AC AFA50028 */ sw $a1, 0x0028($sp)
/* 00630 80B8F0B0 27A4005C */ addiu $a0, $sp, 0x005C ## $a0 = FFFFFFE4
/* 00634 80B8F0B4 0C01DFB4 */ jal Math_Vec3f_Diff
## Vec3f_Sub
/* 00638 80B8F0B8 27A60068 */ addiu $a2, $sp, 0x0068 ## $a2 = FFFFFFF0
/* 0063C 80B8F0BC 0C032D8A */ jal Math3D_Vec3fMagnitude
/* 00640 80B8F0C0 27A40068 */ addiu $a0, $sp, 0x0068 ## $a0 = FFFFFFF0
/* 00644 80B8F0C4 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 00648 80B8F0C8 44818000 */ mtc1 $at, $f16 ## $f16 = 0.50
/* 0064C 80B8F0CC C6020068 */ lwc1 $f2, 0x0068($s0) ## 00000068
/* 00650 80B8F0D0 3C0100FF */ lui $at, 0x00FF ## $at = 00FF0000
/* 00654 80B8F0D4 46000386 */ mov.s $f14, $f0
/* 00658 80B8F0D8 4610103C */ c.lt.s $f2, $f16
/* 0065C 80B8F0DC 3421FFFF */ ori $at, $at, 0xFFFF ## $at = 00FFFFFF
/* 00660 80B8F0E0 8FA80074 */ lw $t0, 0x0074($sp)
/* 00664 80B8F0E4 3C0F8016 */ lui $t7, %hi(gSegments)
/* 00668 80B8F0E8 45000003 */ bc1f .L80B8F0F8
/* 0066C 80B8F0EC 27A5005C */ addiu $a1, $sp, 0x005C ## $a1 = FFFFFFE4
/* 00670 80B8F0F0 10000002 */ beq $zero, $zero, .L80B8F0FC
/* 00674 80B8F0F4 46008306 */ mov.s $f12, $f16
.L80B8F0F8:
/* 00678 80B8F0F8 46001306 */ mov.s $f12, $f2
.L80B8F0FC:
/* 0067C 80B8F0FC 460C003C */ c.lt.s $f0, $f12
/* 00680 80B8F100 00000000 */ nop
/* 00684 80B8F104 4502004F */ bc1fl .L80B8F244
/* 00688 80B8F108 460E1283 */ div.s $f10, $f2, $f14
/* 0068C 80B8F10C 8D030004 */ lw $v1, 0x0004($t0) ## 00000004
/* 00690 80B8F110 860A01F2 */ lh $t2, 0x01F2($s0) ## 000001F2
/* 00694 80B8F114 8FA40028 */ lw $a0, 0x0028($sp)
/* 00698 80B8F118 00036100 */ sll $t4, $v1, 4
/* 0069C 80B8F11C 000C6F02 */ srl $t5, $t4, 28
/* 006A0 80B8F120 000D7080 */ sll $t6, $t5, 2
/* 006A4 80B8F124 01EE7821 */ addu $t7, $t7, $t6
/* 006A8 80B8F128 8DEF6FA8 */ lw $t7, %lo(gSegments)($t7)
/* 006AC 80B8F12C 000A4880 */ sll $t1, $t2, 2
/* 006B0 80B8F130 0061C024 */ and $t8, $v1, $at
/* 006B4 80B8F134 012A4823 */ subu $t1, $t1, $t2
/* 006B8 80B8F138 00094840 */ sll $t1, $t1, 1
/* 006BC 80B8F13C 01F8C821 */ addu $t9, $t7, $t8
/* 006C0 80B8F140 03295821 */ addu $t3, $t9, $t1
/* 006C4 80B8F144 3C018000 */ lui $at, 0x8000 ## $at = 80000000
/* 006C8 80B8F148 01614021 */ addu $t0, $t3, $at
/* 006CC 80B8F14C 0C01DF90 */ jal Math_Vec3f_Copy
## Vec3f_Copy
/* 006D0 80B8F150 AFA80050 */ sw $t0, 0x0050($sp)
/* 006D4 80B8F154 860201F4 */ lh $v0, 0x01F4($s0) ## 000001F4
/* 006D8 80B8F158 860D01F0 */ lh $t5, 0x01F0($s0) ## 000001F0
/* 006DC 80B8F15C 3C098016 */ lui $t1, %hi(gSegments)
/* 006E0 80B8F160 A60201F2 */ sh $v0, 0x01F2($s0) ## 000001F2
/* 006E4 80B8F164 860C01F2 */ lh $t4, 0x01F2($s0) ## 000001F2
/* 006E8 80B8F168 27A40040 */ addiu $a0, $sp, 0x0040 ## $a0 = FFFFFFC8
/* 006EC 80B8F16C 244E0001 */ addiu $t6, $v0, 0x0001 ## $t6 = 00000001
/* 006F0 80B8F170 018D082A */ slt $at, $t4, $t5
/* 006F4 80B8F174 54200004 */ bnel $at, $zero, .L80B8F188
/* 006F8 80B8F178 A60E01F4 */ sh $t6, 0x01F4($s0) ## 000001F4
/* 006FC 80B8F17C 10000002 */ beq $zero, $zero, .L80B8F188
/* 00700 80B8F180 A60001F4 */ sh $zero, 0x01F4($s0) ## 000001F4
/* 00704 80B8F184 A60E01F4 */ sh $t6, 0x01F4($s0) ## 000001F4
.L80B8F188:
/* 00708 80B8F188 8FAF0074 */ lw $t7, 0x0074($sp)
/* 0070C 80B8F18C 860C01F4 */ lh $t4, 0x01F4($s0) ## 000001F4
/* 00710 80B8F190 3C0100FF */ lui $at, 0x00FF ## $at = 00FF0000
/* 00714 80B8F194 8DE30004 */ lw $v1, 0x0004($t7) ## 00000004
/* 00718 80B8F198 3421FFFF */ ori $at, $at, 0xFFFF ## $at = 00FFFFFF
/* 0071C 80B8F19C 000C6880 */ sll $t5, $t4, 2
/* 00720 80B8F1A0 0003C100 */ sll $t8, $v1, 4
/* 00724 80B8F1A4 00185702 */ srl $t2, $t8, 28
/* 00728 80B8F1A8 000AC880 */ sll $t9, $t2, 2
/* 0072C 80B8F1AC 01394821 */ addu $t1, $t1, $t9
/* 00730 80B8F1B0 8D296FA8 */ lw $t1, %lo(gSegments)($t1)
/* 00734 80B8F1B4 01AC6823 */ subu $t5, $t5, $t4
/* 00738 80B8F1B8 00615824 */ and $t3, $v1, $at
/* 0073C 80B8F1BC 000D6840 */ sll $t5, $t5, 1
/* 00740 80B8F1C0 012B4021 */ addu $t0, $t1, $t3
/* 00744 80B8F1C4 010D7021 */ addu $t6, $t0, $t5
/* 00748 80B8F1C8 3C018000 */ lui $at, 0x8000 ## $at = 80000000
/* 0074C 80B8F1CC 01C17821 */ addu $t7, $t6, $at
/* 00750 80B8F1D0 AFAF004C */ sw $t7, 0x004C($sp)
/* 00754 80B8F1D4 8FA50054 */ lw $a1, 0x0054($sp)
/* 00758 80B8F1D8 0C01DFC1 */ jal Math_Vec3s_DiffToVec3f
/* 0075C 80B8F1DC 8FA60050 */ lw $a2, 0x0050($sp)
/* 00760 80B8F1E0 27A40034 */ addiu $a0, $sp, 0x0034 ## $a0 = FFFFFFBC
/* 00764 80B8F1E4 8FA5004C */ lw $a1, 0x004C($sp)
/* 00768 80B8F1E8 0C01DFC1 */ jal Math_Vec3s_DiffToVec3f
/* 0076C 80B8F1EC 8FA60054 */ lw $a2, 0x0054($sp)
/* 00770 80B8F1F0 27A40040 */ addiu $a0, $sp, 0x0040 ## $a0 = FFFFFFC8
/* 00774 80B8F1F4 27A50034 */ addiu $a1, $sp, 0x0034 ## $a1 = FFFFFFBC
/* 00778 80B8F1F8 0C032C04 */ jal Math3D_CosOut
/* 0077C 80B8F1FC 27A60030 */ addiu $a2, $sp, 0x0030 ## $a2 = FFFFFFB8
/* 00780 80B8F200 10400004 */ beq $v0, $zero, .L80B8F214
/* 00784 80B8F204 C7A60030 */ lwc1 $f6, 0x0030($sp)
/* 00788 80B8F208 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
/* 0078C 80B8F20C 1000001D */ beq $zero, $zero, .L80B8F284
/* 00790 80B8F210 E6040068 */ swc1 $f4, 0x0068($s0) ## 00000068
.L80B8F214:
/* 00794 80B8F214 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 00798 80B8F218 44814000 */ mtc1 $at, $f8 ## $f8 = 1.00
/* 0079C 80B8F21C 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 007A0 80B8F220 44819000 */ mtc1 $at, $f18 ## $f18 = 0.50
/* 007A4 80B8F224 46083280 */ add.s $f10, $f6, $f8
/* 007A8 80B8F228 C6060068 */ lwc1 $f6, 0x0068($s0) ## 00000068
/* 007AC 80B8F22C 46125102 */ mul.s $f4, $f10, $f18
/* 007B0 80B8F230 00000000 */ nop
/* 007B4 80B8F234 46043202 */ mul.s $f8, $f6, $f4
/* 007B8 80B8F238 10000012 */ beq $zero, $zero, .L80B8F284
/* 007BC 80B8F23C E6080068 */ swc1 $f8, 0x0068($s0) ## 00000068
/* 007C0 80B8F240 460E1283 */ div.s $f10, $f2, $f14
.L80B8F244:
/* 007C4 80B8F244 27A40068 */ addiu $a0, $sp, 0x0068 ## $a0 = FFFFFFF0
/* 007C8 80B8F248 44055000 */ mfc1 $a1, $f10
/* 007CC 80B8F24C 0C01DFD7 */ jal Math_Vec3f_Scale
/* 007D0 80B8F250 00000000 */ nop
/* 007D4 80B8F254 C61201D8 */ lwc1 $f18, 0x01D8($s0) ## 000001D8
/* 007D8 80B8F258 C7A60068 */ lwc1 $f6, 0x0068($sp)
/* 007DC 80B8F25C C60801DC */ lwc1 $f8, 0x01DC($s0) ## 000001DC
/* 007E0 80B8F260 46069100 */ add.s $f4, $f18, $f6
/* 007E4 80B8F264 C60601E0 */ lwc1 $f6, 0x01E0($s0) ## 000001E0
/* 007E8 80B8F268 E60401D8 */ swc1 $f4, 0x01D8($s0) ## 000001D8
/* 007EC 80B8F26C C7AA006C */ lwc1 $f10, 0x006C($sp)
/* 007F0 80B8F270 460A4480 */ add.s $f18, $f8, $f10
/* 007F4 80B8F274 E61201DC */ swc1 $f18, 0x01DC($s0) ## 000001DC
/* 007F8 80B8F278 C7A40070 */ lwc1 $f4, 0x0070($sp)
/* 007FC 80B8F27C 46043200 */ add.s $f8, $f6, $f4
/* 00800 80B8F280 E60801E0 */ swc1 $f8, 0x01E0($s0) ## 000001E0
.L80B8F284:
/* 00804 80B8F284 8FBF001C */ lw $ra, 0x001C($sp)
/* 00808 80B8F288 8FB00018 */ lw $s0, 0x0018($sp)
/* 0080C 80B8F28C 27BD0078 */ addiu $sp, $sp, 0x0078 ## $sp = 00000000
/* 00810 80B8F290 03E00008 */ jr $ra
/* 00814 80B8F294 00000000 */ nop

View File

@ -1,65 +0,0 @@
glabel ObjBean_WaitForWater
/* 016D8 80B90158 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 016DC 80B9015C AFB00020 */ sw $s0, 0x0020($sp)
/* 016E0 80B90160 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 016E4 80B90164 AFBF0024 */ sw $ra, 0x0024($sp)
/* 016E8 80B90168 AFA5002C */ sw $a1, 0x002C($sp)
/* 016EC 80B9016C 8E1901BC */ lw $t9, 0x01BC($s0) ## 000001BC
/* 016F0 80B90170 0320F809 */ jalr $ra, $t9
/* 016F4 80B90174 00000000 */ nop
/* 016F8 80B90178 920E01F7 */ lbu $t6, 0x01F7($s0) ## 000001F7
/* 016FC 80B9017C 8FA4002C */ lw $a0, 0x002C($sp)
/* 01700 80B90180 31CF0040 */ andi $t7, $t6, 0x0040 ## $t7 = 00000000
/* 01704 80B90184 15E00020 */ bne $t7, $zero, .L80B90208
/* 01708 80B90188 00000000 */ nop
/* 0170C 80B9018C 0C01B129 */ jal Flags_GetEnv
/* 01710 80B90190 24050005 */ addiu $a1, $zero, 0x0005 ## $a1 = 00000005
/* 01714 80B90194 1040001C */ beq $v0, $zero, .L80B90208
/* 01718 80B90198 3C0380B9 */ lui $v1, %hi(D_80B90E30) ## $v1 = 80B90000
/* 0171C 80B9019C 24630E30 */ addiu $v1, $v1, %lo(D_80B90E30) ## $v1 = 80B90E30
/* 01720 80B901A0 8C780000 */ lw $t8, 0x0000($v1) ## 80B90E30
/* 01724 80B901A4 3C014248 */ lui $at, 0x4248 ## $at = 42480000
/* 01728 80B901A8 17000017 */ bne $t8, $zero, .L80B90208
/* 0172C 80B901AC 00000000 */ nop
/* 01730 80B901B0 C6040090 */ lwc1 $f4, 0x0090($s0) ## 00000090
/* 01734 80B901B4 44813000 */ mtc1 $at, $f6 ## $f6 = 50.00
/* 01738 80B901B8 00000000 */ nop
/* 0173C 80B901BC 4606203C */ c.lt.s $f4, $f6
/* 01740 80B901C0 00000000 */ nop
/* 01744 80B901C4 45000010 */ bc1f .L80B90208
/* 01748 80B901C8 00000000 */ nop
/* 0174C 80B901CC 0C2E4093 */ jal ObjBean_SetupGrowWaterPhase1
/* 01750 80B901D0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 01754 80B901D4 3C0380B9 */ lui $v1, %hi(D_80B90E30) ## $v1 = 80B90000
/* 01758 80B901D8 24630E30 */ addiu $v1, $v1, %lo(D_80B90E30) ## $v1 = 80B90E30
/* 0175C 80B901DC AC700000 */ sw $s0, 0x0000($v1) ## 80B90E30
/* 01760 80B901E0 8FA4002C */ lw $a0, 0x002C($sp)
/* 01764 80B901E4 240508A2 */ addiu $a1, $zero, 0x08A2 ## $a1 = 000008A2
/* 01768 80B901E8 2406FF9D */ addiu $a2, $zero, 0xFF9D ## $a2 = FFFFFF9D
/* 0176C 80B901EC 02003825 */ or $a3, $s0, $zero ## $a3 = 00000000
/* 01770 80B901F0 0C02003E */ jal OnePointCutscene_Init
/* 01774 80B901F4 AFA00010 */ sw $zero, 0x0010($sp)
/* 01778 80B901F8 8E080004 */ lw $t0, 0x0004($s0) ## 00000004
/* 0177C 80B901FC 35090010 */ ori $t1, $t0, 0x0010 ## $t1 = 00000010
/* 01780 80B90200 1000000D */ beq $zero, $zero, .L80B90238
/* 01784 80B90204 AE090004 */ sw $t1, 0x0004($s0) ## 00000004
.L80B90208:
/* 01788 80B90208 3C0380B9 */ lui $v1, %hi(D_80B90E30) ## $v1 = 80B90000
/* 0178C 80B9020C 24630E30 */ addiu $v1, $v1, %lo(D_80B90E30) ## $v1 = 80B90E30
/* 01790 80B90210 8C6A0000 */ lw $t2, 0x0000($v1) ## 80B90E30
/* 01794 80B90214 8FA4002C */ lw $a0, 0x002C($sp)
/* 01798 80B90218 560A0008 */ bnel $s0, $t2, .L80B9023C
/* 0179C 80B9021C 8FBF0024 */ lw $ra, 0x0024($sp)
/* 017A0 80B90220 0C01B129 */ jal Flags_GetEnv
/* 017A4 80B90224 24050005 */ addiu $a1, $zero, 0x0005 ## $a1 = 00000005
/* 017A8 80B90228 3C0380B9 */ lui $v1, %hi(D_80B90E30) ## $v1 = 80B90000
/* 017AC 80B9022C 14400002 */ bne $v0, $zero, .L80B90238
/* 017B0 80B90230 24630E30 */ addiu $v1, $v1, %lo(D_80B90E30) ## $v1 = 80B90E30
/* 017B4 80B90234 AC600000 */ sw $zero, 0x0000($v1) ## 80B90E30
.L80B90238:
/* 017B8 80B90238 8FBF0024 */ lw $ra, 0x0024($sp)
.L80B9023C:
/* 017BC 80B9023C 8FB00020 */ lw $s0, 0x0020($sp)
/* 017C0 80B90240 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 017C4 80B90244 03E00008 */ jr $ra
/* 017C8 80B90248 00000000 */ nop

View File

@ -1,13 +0,0 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purpose registers
.section .rodata
.balign 16
glabel D_80B91080
.incbin "baserom/ovl_Obj_Bean", 0x2600, 0x000003E0

4
spec
View File

@ -3213,11 +3213,7 @@ endseg
beginseg beginseg
name "ovl_Obj_Bean" name "ovl_Obj_Bean"
include "build/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.o" include "build/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.o"
#ifdef NON_MATCHING
include "build/src/overlays/actors/ovl_Obj_Bean/ovl_Obj_Bean_reloc.o" include "build/src/overlays/actors/ovl_Obj_Bean/ovl_Obj_Bean_reloc.o"
#else
include "build/data/overlays/actors/z_obj_bean.reloc.o"
#endif
endseg endseg
beginseg beginseg

View File

@ -244,14 +244,11 @@ void ObjBean_SetupPath(ObjBean* this, GlobalContext* globalCtx) {
Math_Vec3s_ToVec3f(&this->pathPoints, SEGMENTED_TO_VIRTUAL(path->points)); Math_Vec3s_ToVec3f(&this->pathPoints, SEGMENTED_TO_VIRTUAL(path->points));
} }
#ifdef NON_MATCHING
// Regalloc near speed > mag.
// f12 vs f2 regs
void ObjBean_FollowPath(ObjBean* this, GlobalContext* globalCtx) { void ObjBean_FollowPath(ObjBean* this, GlobalContext* globalCtx) {
Path* path; Path* path;
Vec3f acell; Vec3f acell;
Vec3f pathPointsFloat; Vec3f pathPointsFloat;
s32 pad; f32 speed;
Vec3s* nextPathPoint; Vec3s* nextPathPoint;
Vec3s* currentPoint; Vec3s* currentPoint;
Vec3s* sp4C; Vec3s* sp4C;
@ -259,7 +256,6 @@ void ObjBean_FollowPath(ObjBean* this, GlobalContext* globalCtx) {
Vec3f sp34; Vec3f sp34;
f32 sp30; f32 sp30;
f32 mag; f32 mag;
f32 speed;
Math_StepToF(&this->dyna.actor.speedXZ, sBeanSpeeds[this->unk_1F6].velocity, sBeanSpeeds[this->unk_1F6].accel); Math_StepToF(&this->dyna.actor.speedXZ, sBeanSpeeds[this->unk_1F6].velocity, sBeanSpeeds[this->unk_1F6].accel);
path = &globalCtx->setupPathList[(this->dyna.actor.params >> 8) & 0x1F]; path = &globalCtx->setupPathList[(this->dyna.actor.params >> 8) & 0x1F];
@ -290,15 +286,12 @@ void ObjBean_FollowPath(ObjBean* this, GlobalContext* globalCtx) {
this->dyna.actor.speedXZ *= (sp30 + 1.0f) * 0.5f; this->dyna.actor.speedXZ *= (sp30 + 1.0f) * 0.5f;
} }
} else { } else {
Math_Vec3f_Scale(&acell, speed / mag); Math_Vec3f_Scale(&acell, this->dyna.actor.speedXZ / mag);
this->pathPoints.x += acell.x; this->pathPoints.x += acell.x;
this->pathPoints.y += acell.y; this->pathPoints.y += acell.y;
this->pathPoints.z += acell.z; this->pathPoints.z += acell.z;
} }
} }
#else
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Bean/ObjBean_FollowPath.s")
#endif
s32 ObjBean_CheckForHorseTrample(ObjBean* this, GlobalContext* globalCtx) { s32 ObjBean_CheckForHorseTrample(ObjBean* this, GlobalContext* globalCtx) {
Actor* currentActor = globalCtx->actorCtx.actorLists[ACTORCAT_BG].head; Actor* currentActor = globalCtx->actorCtx.actorLists[ACTORCAT_BG].head;
@ -645,10 +638,9 @@ void ObjBean_SetupWaitForWater(ObjBean* this) {
ObjBean_SetupLeavesStill(this); ObjBean_SetupLeavesStill(this);
} }
#ifdef NON_MATCHING
// D_80B90E30 isn't being loaded properly
void ObjBean_WaitForWater(ObjBean* this, GlobalContext* globalCtx) { void ObjBean_WaitForWater(ObjBean* this, GlobalContext* globalCtx) {
this->transformFunc(this); this->transformFunc(this);
if (!(this->stateFlags & BEAN_STATE_BEEN_WATERED) && Flags_GetEnv(globalCtx, 5) && (D_80B90E30 == NULL) && if (!(this->stateFlags & BEAN_STATE_BEEN_WATERED) && Flags_GetEnv(globalCtx, 5) && (D_80B90E30 == NULL) &&
(this->dyna.actor.xzDistToPlayer < 50.0f)) { (this->dyna.actor.xzDistToPlayer < 50.0f)) {
ObjBean_SetupGrowWaterPhase1(this); ObjBean_SetupGrowWaterPhase1(this);
@ -657,13 +649,12 @@ void ObjBean_WaitForWater(ObjBean* this, GlobalContext* globalCtx) {
this->dyna.actor.flags |= 0x10; this->dyna.actor.flags |= 0x10;
return; return;
} }
if ((D_80B90E30 == this) && !Flags_GetEnv(globalCtx, 5)) { if ((D_80B90E30 == this) && !Flags_GetEnv(globalCtx, 5)) {
D_80B90E30 = NULL; D_80B90E30 = NULL;
if (D_80B90E30) {}
} }
} }
#else
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Bean/ObjBean_WaitForWater.s")
#endif
void ObjBean_SetupGrowWaterPhase1(ObjBean* this) { void ObjBean_SetupGrowWaterPhase1(ObjBean* this) {
this->actionFunc = ObjBean_GrowWaterPhase1; this->actionFunc = ObjBean_GrowWaterPhase1;