a few more

This commit is contained in:
Ethan Roseman 2020-11-26 16:19:34 -05:00
parent 03349746a4
commit 1e02c566ad
11 changed files with 115 additions and 305 deletions

View File

@ -1,39 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel MakeStatusField
/* 182474 80253B94 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 182478 80253B98 AFB10014 */ sw $s1, 0x14($sp)
/* 18247C 80253B9C 0080882D */ daddu $s1, $a0, $zero
/* 182480 80253BA0 AFBF0020 */ sw $ra, 0x20($sp)
/* 182484 80253BA4 AFB3001C */ sw $s3, 0x1c($sp)
/* 182488 80253BA8 AFB20018 */ sw $s2, 0x18($sp)
/* 18248C 80253BAC AFB00010 */ sw $s0, 0x10($sp)
/* 182490 80253BB0 8E30000C */ lw $s0, 0xc($s1)
/* 182494 80253BB4 8E130000 */ lw $s3, ($s0)
/* 182498 80253BB8 26100004 */ addiu $s0, $s0, 4
/* 18249C 80253BBC 8E120000 */ lw $s2, ($s0)
/* 1824A0 80253BC0 26100004 */ addiu $s0, $s0, 4
/* 1824A4 80253BC4 8E050000 */ lw $a1, ($s0)
/* 1824A8 80253BC8 0C0B1EAF */ jal get_variable
/* 1824AC 80253BCC 26100004 */ addiu $s0, $s0, 4
/* 1824B0 80253BD0 0220202D */ daddu $a0, $s1, $zero
/* 1824B4 80253BD4 8E050000 */ lw $a1, ($s0)
/* 1824B8 80253BD8 0C0B1EAF */ jal get_variable
/* 1824BC 80253BDC 0040802D */ daddu $s0, $v0, $zero
/* 1824C0 80253BE0 0220202D */ daddu $a0, $s1, $zero
/* 1824C4 80253BE4 0260282D */ daddu $a1, $s3, $zero
/* 1824C8 80253BE8 00021200 */ sll $v0, $v0, 8
/* 1824CC 80253BEC 3C038000 */ lui $v1, 0x8000
/* 1824D0 80253BF0 00431025 */ or $v0, $v0, $v1
/* 1824D4 80253BF4 02429025 */ or $s2, $s2, $v0
/* 1824D8 80253BF8 0C0B2026 */ jal set_variable
/* 1824DC 80253BFC 02503025 */ or $a2, $s2, $s0
/* 1824E0 80253C00 8FBF0020 */ lw $ra, 0x20($sp)
/* 1824E4 80253C04 8FB3001C */ lw $s3, 0x1c($sp)
/* 1824E8 80253C08 8FB20018 */ lw $s2, 0x18($sp)
/* 1824EC 80253C0C 8FB10014 */ lw $s1, 0x14($sp)
/* 1824F0 80253C10 8FB00010 */ lw $s0, 0x10($sp)
/* 1824F4 80253C14 24020002 */ addiu $v0, $zero, 2
/* 1824F8 80253C18 03E00008 */ jr $ra
/* 1824FC 80253C1C 27BD0028 */ addiu $sp, $sp, 0x28

View File

@ -1,41 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel MultiplyVec2ByActorScale
/* 182928 80254048 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 18292C 8025404C AFB00010 */ sw $s0, 0x10($sp)
/* 182930 80254050 0080802D */ daddu $s0, $a0, $zero
/* 182934 80254054 AFBF001C */ sw $ra, 0x1c($sp)
/* 182938 80254058 AFB20018 */ sw $s2, 0x18($sp)
/* 18293C 8025405C AFB10014 */ sw $s1, 0x14($sp)
/* 182940 80254060 8E040148 */ lw $a0, 0x148($s0)
/* 182944 80254064 0C09A75B */ jal get_actor
/* 182948 80254068 8E11000C */ lw $s1, 0xc($s0)
/* 18294C 8025406C 0200202D */ daddu $a0, $s0, $zero
/* 182950 80254070 8E250000 */ lw $a1, ($s1)
/* 182954 80254074 0C0B210B */ jal get_float_variable
/* 182958 80254078 0040902D */ daddu $s2, $v0, $zero
/* 18295C 8025407C C6420188 */ lwc1 $f2, 0x188($s2)
/* 182960 80254080 46020002 */ mul.s $f0, $f0, $f2
/* 182964 80254084 00000000 */ nop
/* 182968 80254088 8E250000 */ lw $a1, ($s1)
/* 18296C 8025408C 44060000 */ mfc1 $a2, $f0
/* 182970 80254090 0C0B2190 */ jal set_float_variable
/* 182974 80254094 0200202D */ daddu $a0, $s0, $zero
/* 182978 80254098 8E250004 */ lw $a1, 4($s1)
/* 18297C 8025409C 0C0B210B */ jal get_float_variable
/* 182980 802540A0 0200202D */ daddu $a0, $s0, $zero
/* 182984 802540A4 C6420188 */ lwc1 $f2, 0x188($s2)
/* 182988 802540A8 46020002 */ mul.s $f0, $f0, $f2
/* 18298C 802540AC 00000000 */ nop
/* 182990 802540B0 8E250004 */ lw $a1, 4($s1)
/* 182994 802540B4 44060000 */ mfc1 $a2, $f0
/* 182998 802540B8 0C0B2190 */ jal set_float_variable
/* 18299C 802540BC 0200202D */ daddu $a0, $s0, $zero
/* 1829A0 802540C0 8FBF001C */ lw $ra, 0x1c($sp)
/* 1829A4 802540C4 8FB20018 */ lw $s2, 0x18($sp)
/* 1829A8 802540C8 8FB10014 */ lw $s1, 0x14($sp)
/* 1829AC 802540CC 8FB00010 */ lw $s0, 0x10($sp)
/* 1829B0 802540D0 24020002 */ addiu $v0, $zero, 2
/* 1829B4 802540D4 03E00008 */ jr $ra
/* 1829B8 802540D8 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -1,51 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel MultiplyVec3ByActorScale
/* 1829BC 802540DC 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 1829C0 802540E0 AFB00010 */ sw $s0, 0x10($sp)
/* 1829C4 802540E4 0080802D */ daddu $s0, $a0, $zero
/* 1829C8 802540E8 AFBF001C */ sw $ra, 0x1c($sp)
/* 1829CC 802540EC AFB20018 */ sw $s2, 0x18($sp)
/* 1829D0 802540F0 AFB10014 */ sw $s1, 0x14($sp)
/* 1829D4 802540F4 8E040148 */ lw $a0, 0x148($s0)
/* 1829D8 802540F8 0C09A75B */ jal get_actor
/* 1829DC 802540FC 8E11000C */ lw $s1, 0xc($s0)
/* 1829E0 80254100 0200202D */ daddu $a0, $s0, $zero
/* 1829E4 80254104 8E250000 */ lw $a1, ($s1)
/* 1829E8 80254108 0C0B210B */ jal get_float_variable
/* 1829EC 8025410C 0040902D */ daddu $s2, $v0, $zero
/* 1829F0 80254110 C6420188 */ lwc1 $f2, 0x188($s2)
/* 1829F4 80254114 46020002 */ mul.s $f0, $f0, $f2
/* 1829F8 80254118 00000000 */ nop
/* 1829FC 8025411C 8E250000 */ lw $a1, ($s1)
/* 182A00 80254120 44060000 */ mfc1 $a2, $f0
/* 182A04 80254124 0C0B2190 */ jal set_float_variable
/* 182A08 80254128 0200202D */ daddu $a0, $s0, $zero
/* 182A0C 8025412C 8E250004 */ lw $a1, 4($s1)
/* 182A10 80254130 0C0B210B */ jal get_float_variable
/* 182A14 80254134 0200202D */ daddu $a0, $s0, $zero
/* 182A18 80254138 C6420188 */ lwc1 $f2, 0x188($s2)
/* 182A1C 8025413C 46020002 */ mul.s $f0, $f0, $f2
/* 182A20 80254140 00000000 */ nop
/* 182A24 80254144 8E250004 */ lw $a1, 4($s1)
/* 182A28 80254148 44060000 */ mfc1 $a2, $f0
/* 182A2C 8025414C 0C0B2190 */ jal set_float_variable
/* 182A30 80254150 0200202D */ daddu $a0, $s0, $zero
/* 182A34 80254154 8E250008 */ lw $a1, 8($s1)
/* 182A38 80254158 0C0B210B */ jal get_float_variable
/* 182A3C 8025415C 0200202D */ daddu $a0, $s0, $zero
/* 182A40 80254160 C6420188 */ lwc1 $f2, 0x188($s2)
/* 182A44 80254164 46020002 */ mul.s $f0, $f0, $f2
/* 182A48 80254168 00000000 */ nop
/* 182A4C 8025416C 8E250008 */ lw $a1, 8($s1)
/* 182A50 80254170 44060000 */ mfc1 $a2, $f0
/* 182A54 80254174 0C0B2190 */ jal set_float_variable
/* 182A58 80254178 0200202D */ daddu $a0, $s0, $zero
/* 182A5C 8025417C 8FBF001C */ lw $ra, 0x1c($sp)
/* 182A60 80254180 8FB20018 */ lw $s2, 0x18($sp)
/* 182A64 80254184 8FB10014 */ lw $s1, 0x14($sp)
/* 182A68 80254188 8FB00010 */ lw $s0, 0x10($sp)
/* 182A6C 8025418C 24020002 */ addiu $v0, $zero, 2
/* 182A70 80254190 03E00008 */ jr $ra
/* 182A74 80254194 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -1,37 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel ShowBattleChoice
/* 181E18 80253538 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 181E1C 8025353C AFB00010 */ sw $s0, 0x10($sp)
/* 181E20 80253540 0080802D */ daddu $s0, $a0, $zero
/* 181E24 80253544 AFBF0014 */ sw $ra, 0x14($sp)
/* 181E28 80253548 10A00009 */ beqz $a1, .L80253570
/* 181E2C 8025354C 8E02000C */ lw $v0, 0xc($s0)
/* 181E30 80253550 0C0B1EAF */ jal get_variable
/* 181E34 80253554 8C450000 */ lw $a1, ($v0)
/* 181E38 80253558 0040202D */ daddu $a0, $v0, $zero
/* 181E3C 8025355C 26050074 */ addiu $a1, $s0, 0x74
/* 181E40 80253560 0C049640 */ jal load_string
/* 181E44 80253564 AE000074 */ sw $zero, 0x74($s0)
/* 181E48 80253568 3C01802A */ lui $at, 0x802a
/* 181E4C 8025356C AC22FA64 */ sw $v0, -0x59c($at)
.L80253570:
/* 181E50 80253570 8E030074 */ lw $v1, 0x74($s0)
/* 181E54 80253574 24020001 */ addiu $v0, $zero, 1
/* 181E58 80253578 1462000A */ bne $v1, $v0, .L802535A4
/* 181E5C 8025357C 0000102D */ daddu $v0, $zero, $zero
/* 181E60 80253580 3C02802A */ lui $v0, 0x802a
/* 181E64 80253584 8C42FA64 */ lw $v0, -0x59c($v0)
/* 181E68 80253588 3C04802A */ lui $a0, %hi(gSpeakingActorPrintCtx)
/* 181E6C 8025358C 8C84FA60 */ lw $a0, %lo(gSpeakingActorPrintCtx)($a0)
/* 181E70 80253590 904304E8 */ lbu $v1, 0x4e8($v0)
/* 181E74 80253594 24020001 */ addiu $v0, $zero, 1
/* 181E78 80253598 A08304E8 */ sb $v1, 0x4e8($a0)
/* 181E7C 8025359C 306300FF */ andi $v1, $v1, 0xff
/* 181E80 802535A0 AE030084 */ sw $v1, 0x84($s0)
.L802535A4:
/* 181E84 802535A4 8FBF0014 */ lw $ra, 0x14($sp)
/* 181E88 802535A8 8FB00010 */ lw $s0, 0x10($sp)
/* 181E8C 802535AC 03E00008 */ jr $ra
/* 181E90 802535B0 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,42 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel StopLoopingSoundAtActor
/* 1822F8 80253A18 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 1822FC 80253A1C AFB20018 */ sw $s2, 0x18($sp)
/* 182300 80253A20 0080902D */ daddu $s2, $a0, $zero
/* 182304 80253A24 AFBF001C */ sw $ra, 0x1c($sp)
/* 182308 80253A28 AFB10014 */ sw $s1, 0x14($sp)
/* 18230C 80253A2C AFB00010 */ sw $s0, 0x10($sp)
/* 182310 80253A30 8E50000C */ lw $s0, 0xc($s2)
/* 182314 80253A34 8E050000 */ lw $a1, ($s0)
/* 182318 80253A38 0C0B1EAF */ jal get_variable
/* 18231C 80253A3C 26100004 */ addiu $s0, $s0, 4
/* 182320 80253A40 0040882D */ daddu $s1, $v0, $zero
/* 182324 80253A44 8E050000 */ lw $a1, ($s0)
/* 182328 80253A48 0C0B1EAF */ jal get_variable
/* 18232C 80253A4C 0240202D */ daddu $a0, $s2, $zero
/* 182330 80253A50 0040802D */ daddu $s0, $v0, $zero
/* 182334 80253A54 2402FF81 */ addiu $v0, $zero, -0x7f
/* 182338 80253A58 16220002 */ bne $s1, $v0, .L80253A64
/* 18233C 80253A5C 00000000 */ nop
/* 182340 80253A60 8E510148 */ lw $s1, 0x148($s2)
.L80253A64:
/* 182344 80253A64 0C09A75B */ jal get_actor
/* 182348 80253A68 0220202D */ daddu $a0, $s1, $zero
/* 18234C 80253A6C 00101880 */ sll $v1, $s0, 2
/* 182350 80253A70 00438021 */ addu $s0, $v0, $v1
/* 182354 80253A74 8E040438 */ lw $a0, 0x438($s0)
/* 182358 80253A78 10800005 */ beqz $a0, .L80253A90
/* 18235C 80253A7C 24020002 */ addiu $v0, $zero, 2
/* 182360 80253A80 0C05271B */ jal stop_sound
/* 182364 80253A84 00000000 */ nop
/* 182368 80253A88 AE000438 */ sw $zero, 0x438($s0)
/* 18236C 80253A8C 24020002 */ addiu $v0, $zero, 2
.L80253A90:
/* 182370 80253A90 8FBF001C */ lw $ra, 0x1c($sp)
/* 182374 80253A94 8FB20018 */ lw $s2, 0x18($sp)
/* 182378 80253A98 8FB10014 */ lw $s1, 0x14($sp)
/* 18237C 80253A9C 8FB00010 */ lw $s0, 0x10($sp)
/* 182380 80253AA0 03E00008 */ jr $ra
/* 182384 80253AA4 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -1,41 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_802536A8
/* 181F88 802536A8 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 181F8C 802536AC AFBF0018 */ sw $ra, 0x18($sp)
/* 181F90 802536B0 AFB10014 */ sw $s1, 0x14($sp)
/* 181F94 802536B4 AFB00010 */ sw $s0, 0x10($sp)
/* 181F98 802536B8 8C82000C */ lw $v0, 0xc($a0)
/* 181F9C 802536BC 3C10800E */ lui $s0, %hi(gBattleStatus)
/* 181FA0 802536C0 2610C070 */ addiu $s0, $s0, %lo(gBattleStatus)
/* 181FA4 802536C4 8C450000 */ lw $a1, ($v0)
/* 181FA8 802536C8 0C0B1EAF */ jal get_variable
/* 181FAC 802536CC 0200882D */ daddu $s1, $s0, $zero
/* 181FB0 802536D0 1040000A */ beqz $v0, .L802536FC
/* 181FB4 802536D4 2403FF7F */ addiu $v1, $zero, -0x81
/* 181FB8 802536D8 3C02800A */ lui $v0, %hi(D_8009A650)
/* 181FBC 802536DC 2442A650 */ addiu $v0, $v0, %lo(D_8009A650)
/* 181FC0 802536E0 92030092 */ lbu $v1, 0x92($s0)
/* 181FC4 802536E4 8C440000 */ lw $a0, ($v0)
/* 181FC8 802536E8 34630001 */ ori $v1, $v1, 1
/* 181FCC 802536EC 34840080 */ ori $a0, $a0, 0x80
/* 181FD0 802536F0 A2030092 */ sb $v1, 0x92($s0)
/* 181FD4 802536F4 08094DC7 */ j .L8025371C
/* 181FD8 802536F8 AC440000 */ sw $a0, ($v0)
.L802536FC:
/* 181FDC 802536FC 92220092 */ lbu $v0, 0x92($s1)
/* 181FE0 80253700 3C04800A */ lui $a0, %hi(D_8009A650)
/* 181FE4 80253704 2484A650 */ addiu $a0, $a0, %lo(D_8009A650)
/* 181FE8 80253708 304200FE */ andi $v0, $v0, 0xfe
/* 181FEC 8025370C A2220092 */ sb $v0, 0x92($s1)
/* 181FF0 80253710 8C820000 */ lw $v0, ($a0)
/* 181FF4 80253714 00431024 */ and $v0, $v0, $v1
/* 181FF8 80253718 AC820000 */ sw $v0, ($a0)
.L8025371C:
/* 181FFC 8025371C 8FBF0018 */ lw $ra, 0x18($sp)
/* 182000 80253720 8FB10014 */ lw $s1, 0x14($sp)
/* 182004 80253724 8FB00010 */ lw $s0, 0x10($sp)
/* 182008 80253728 24020002 */ addiu $v0, $zero, 2
/* 18200C 8025372C 03E00008 */ jr $ra
/* 182010 80253730 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -1,44 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80253734
/* 182014 80253734 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 182018 80253738 AFBF0014 */ sw $ra, 0x14($sp)
/* 18201C 8025373C AFB00010 */ sw $s0, 0x10($sp)
/* 182020 80253740 8C82000C */ lw $v0, 0xc($a0)
/* 182024 80253744 0C0B1EAF */ jal get_variable
/* 182028 80253748 8C450000 */ lw $a1, ($v0)
/* 18202C 8025374C 3C10800E */ lui $s0, %hi(gBattleStatus)
/* 182030 80253750 2610C070 */ addiu $s0, $s0, %lo(gBattleStatus)
/* 182034 80253754 0040182D */ daddu $v1, $v0, $zero
/* 182038 80253758 24040001 */ addiu $a0, $zero, 1
/* 18203C 8025375C 10640012 */ beq $v1, $a0, .L802537A8
/* 182040 80253760 28620002 */ slti $v0, $v1, 2
/* 182044 80253764 10400005 */ beqz $v0, .L8025377C
/* 182048 80253768 24020002 */ addiu $v0, $zero, 2
/* 18204C 8025376C 10600009 */ beqz $v1, .L80253794
/* 182050 80253770 2402FFFF */ addiu $v0, $zero, -1
/* 182054 80253774 08094DEB */ j .L802537AC
/* 182058 80253778 00000000 */ nop
.L8025377C:
/* 18205C 8025377C 10620007 */ beq $v1, $v0, .L8025379C
/* 182060 80253780 24020003 */ addiu $v0, $zero, 3
/* 182064 80253784 50620009 */ beql $v1, $v0, .L802537AC
/* 182068 80253788 A2040432 */ sb $a0, 0x432($s0)
/* 18206C 8025378C 08094DEB */ j .L802537AC
/* 182070 80253790 00000000 */ nop
.L80253794:
/* 182074 80253794 08094DEB */ j .L802537AC
/* 182078 80253798 A2020432 */ sb $v0, 0x432($s0)
.L8025379C:
/* 18207C 8025379C 2402FFFE */ addiu $v0, $zero, -2
/* 182080 802537A0 08094DEB */ j .L802537AC
/* 182084 802537A4 A2020432 */ sb $v0, 0x432($s0)
.L802537A8:
/* 182088 802537A8 A2040432 */ sb $a0, 0x432($s0)
.L802537AC:
/* 18208C 802537AC 8FBF0014 */ lw $ra, 0x14($sp)
/* 182090 802537B0 8FB00010 */ lw $s0, 0x10($sp)
/* 182094 802537B4 24020002 */ addiu $v0, $zero, 2
/* 182098 802537B8 03E00008 */ jr $ra
/* 18209C 802537BC 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -533,7 +533,9 @@ typedef struct BattleStatus {
/* 0x08B */ u8 hustleTurns; /* numTurns from hustle drink, normally 0 */
/* 0x08C */ char unk_8C[2];
/* 0x08E */ u8 initialEnemyCount; /* used for SP award bonus */
/* 0x08F */ char unk_8F[7];
/* 0x08F */ char unk_8F[3];
/* 0x092 */ s8 unk_92;
/* 0x093 */ char unk_93[3];
/* 0x096 */ s8 hammerCharge;
/* 0x097 */ s8 jumpCharge;
/* 0x098 */ char unk_98;
@ -612,7 +614,8 @@ typedef struct BattleStatus {
/* 0x330 */ s32 pushInputBuffer[64];
/* 0x430 */ u8 holdInputBufferPos;
/* 0x431 */ u8 inputBufferPos;
/* 0x432 */ char unk_432[2];
/* 0x432 */ s8 unk_432;
/* 0x433 */ char unk_433;
/* 0x434 */ s32 unk_434;
/* 0x438 */ FGModelData* foregroundModelData;
/* 0x43C */ BattleStatusUnk* unk_43C;

View File

@ -1,6 +1,7 @@
#include "common.h"
extern PrintContext* gSpeakingActorPrintCtx;
extern PrintContext* D_8029FA64;
extern s32 gSpeakingActorPrintIsDone; // unk_08
extern s32 gSpeakingActorTalkAnim;
extern s32 gSpeakingActorIdleAnim;
@ -114,7 +115,27 @@ INCLUDE_ASM(s32, "code_181810", ActorSpeak);
INCLUDE_ASM(s32, "code_181810", EndActorSpeech);
INCLUDE_ASM(s32, "code_181810", ShowBattleChoice);
ApiStatus ShowBattleChoice(ScriptInstance *script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
if (isInitialCall) {
s32 stringID = get_variable(script, *args);
script->functionTemp[1].s = 0;
D_8029FA64 = load_string(stringID, &script->functionTemp[1].s);
}
if (script->functionTemp[1].s == 1) {
u8 unk_4E8 = D_8029FA64->unk_4E8;
gSpeakingActorPrintCtx->unk_4E8 = D_8029FA64->unk_4E8;
script->varTable[0] = unk_4E8;
return ApiStatus_DONE1;
}
return ApiStatus_BLOCK;
}
ApiStatus func_802535B4(ScriptInstance* script, s32 isInitialCall) {
if (get_variable(script, *script->ptrReadPos)) {
@ -132,9 +153,43 @@ ApiStatus OverrideBattleDmaDest(ScriptInstance* script, s32 isInitialCall) {
INCLUDE_ASM(s32, "code_181810", LoadBattleDmaData);
INCLUDE_ASM(s32, "code_181810", func_802536A8);
ApiStatus func_802536A8(ScriptInstance* script, s32 isInitialCall) {
BattleStatus* battleStatus = BATTLE_STATUS;
BattleStatus* battleStatus2 = battleStatus;
INCLUDE_ASM(s32, "code_181810", func_80253734);
if (get_variable(script, *script->ptrReadPos) != 0) {
battleStatus2->unk_92 |= 1;
D_8009A650[0] |= 0x80;
} else {
battleStatus2->unk_92 &= ~1;
D_8009A650[0] &= ~0x80;
}
return ApiStatus_DONE2;
}
ApiStatus func_80253734(ScriptInstance* script, s32 isInitialCall) {
BattleStatus* battleStatus = BATTLE_STATUS;
s32 val = get_variable(script, *script->ptrReadPos);
switch (val) {
case 0:
battleStatus->unk_432 = -1;
break;
case 1:
battleStatus->unk_432 = 1;
break;
case 2:
battleStatus->unk_432 = -2;
break;
case 3:
battleStatus->unk_432 = 1;
break;
}
return ApiStatus_DONE2;
}
INCLUDE_ASM(s32, "code_181810", func_802537C0);
@ -158,7 +213,26 @@ INCLUDE_ASM(s32, "code_181810", PlaySoundAtPart);
INCLUDE_ASM(s32, "code_181810", PlayLoopingSoundAtActor);
INCLUDE_ASM(s32, "code_181810", StopLoopingSoundAtActor);
ApiStatus StopLoopingSoundAtActor(ScriptInstance* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
ActorID actorID = get_variable(script, *args++);
s32 idx = get_variable(script, *args++);
Actor* actor;
if (actorID == ActorID_SELF) {
actorID = script->owner1.actorID;
}
actor = get_actor(actorID);
if (actor->x[idx] == 0) {
return ApiStatus_DONE2;
}
stop_sound(actor->x[idx]);
actor->x[idx] = 0;
return ApiStatus_DONE2;
}
ApiStatus SetForegroundModelsVisibleUnsafe(ScriptInstance* script, s32 isInitialCall) {
if (get_variable(script, *script->ptrReadPos)) {
@ -188,7 +262,16 @@ ApiStatus func_80253B30(ScriptInstance* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
INCLUDE_ASM(s32, "code_181810", MakeStatusField);
ApiStatus MakeStatusField(ScriptInstance* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
s32 outVar = *args++;
s32 a = *args++;
s32 b = get_variable(script, *args++);
s32 c = get_variable(script, *args++);
set_variable(script, outVar, a | 0x80000000 | (c << 8) | b);
return ApiStatus_DONE2;
}
s32 is_actor_hp_bar_visible(Actor* actor) {
BattleStatus* battleStatus = BATTLE_STATUS;
@ -232,13 +315,30 @@ ApiStatus MultiplyByActorScale(ScriptInstance* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
Actor* actor = get_actor(script->owner1.actorID);
set_float_variable(script, *args, get_float_variable(script, *args) * actor->scalingFactor);
set_float_variable(script, args[0], get_float_variable(script, args[0]) * actor->scalingFactor);
return ApiStatus_DONE2;
}
INCLUDE_ASM(s32, "code_181810", MultiplyVec2ByActorScale);
ApiStatus MultiplyVec2ByActorScale(ScriptInstance* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
Actor* actor = get_actor(script->owner1.actorID);
INCLUDE_ASM(s32, "code_181810", MultiplyVec3ByActorScale);
set_float_variable(script, args[0], get_float_variable(script, args[0]) * actor->scalingFactor);
set_float_variable(script, args[1], get_float_variable(script, args[1]) * actor->scalingFactor);
return ApiStatus_DONE2;
}
ApiStatus MultiplyVec3yActorScale(ScriptInstance* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
Actor* actor = get_actor(script->owner1.actorID);
set_float_variable(script, args[0], get_float_variable(script, args[0]) * actor->scalingFactor);
set_float_variable(script, args[1], get_float_variable(script, args[1]) * actor->scalingFactor);
set_float_variable(script, args[2], get_float_variable(script, args[2]) * actor->scalingFactor);
return ApiStatus_DONE2;
}
ApiStatus ApplyShrinkFromOwner(ScriptInstance* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;

View File

@ -1440,6 +1440,7 @@ DoRecover = 0x8029BFA0;
DoAirLift = 0x8029C37C;
DoBlowAway = 0x8029C4A8;
gSpeakingActorPrintCtx = 0x8029FA60;
D_8029FA64 = 0x8029FA64;
gSpeakingActorPrintIsDone = 0x8029FA68;
gSpeakingActorTalkAnim = 0x8029FA6C;
gSpeakingActorIdleAnim = 0x8029FA70;

View File

@ -61,6 +61,7 @@ D_8010F094 = 0x8010F094;
D_800D9620 = 0x800D9620;
gSpeakingActorPrintCtx = 0x8029FA60;
D_8029FA64 = 0x8029FA64;
gSpeakingActorPrintIsDone = 0x8029FA68;
gSpeakingActorTalkAnim = 0x8029FA6C;
gSpeakingActorIdleAnim = 0x8029FA70;