Match SummonEnemy & UseIdleAnimation (#510)

This commit is contained in:
Technoman 2021-10-31 11:39:33 -04:00 committed by GitHub
parent a9b8afe9ff
commit b4e5b9e6af
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 111 additions and 249 deletions

View File

@ -733,7 +733,7 @@ typedef struct BattleStatus {
/* 0x0DC */ struct Actor* partnerActor;
/* 0x0E0 */ struct Actor* enemyActors[24];
/* 0x140 */ s16 enemyIDs[24];
/* 0x170 */ char unk_170;
/* 0x170 */ s8 unk_170;
/* 0x171 */ s8 numEnemyActors;
/* 0x172 */ s16 currentTurnEnemyID;
/* 0x174 */ struct Actor* currentTurnEnemy;
@ -1675,7 +1675,7 @@ typedef struct Actor {
/* 0x1E8 */ s32 onHitID;
/* 0x1EC */ s32 onTurnChangeID;
/* 0x1F0 */ s8 lastEventType;
/* 0x1F1 */ u8 turnPriority;
/* 0x1F1 */ s8 turnPriority;
/* 0x1F2 */ u8 enemyIndex; /* actorID = this | 200 */
/* 0x1F3 */ u8 numParts;
/* 0x1F4 */ struct ActorPart* partsTable;

View File

@ -1654,6 +1654,8 @@ enum ActorFlags {
ACTOR_FLAG_NO_ATTACK = 0x00200000, ///< Skip attack turn.
ACTOR_FLAG_NO_DMG_APPLY = 0x00400000, ///< Damage is not applied to actor HP.
ACTOR_FLAG_NO_DMG_POPUP = 0x02000000, ///< Hide damage popup.
ACTOR_FLAG_4000000 = 0x04000000,
ACTOR_FLAG_8000000 = 0x08000000,
ACTOR_FLAG_10000000 = 0x10000000,
};

View File

@ -1942,7 +1942,92 @@ ApiStatus func_8026DA94(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
INCLUDE_ASM(s32, "197F40", SummonEnemy);
ApiStatus SummonEnemy(Evt* script, s32 isInitialCall) {
BattleStatus* battleStatus = &gBattleStatus;
s32* args = script->ptrReadPos;
Actor* actor1;
Actor* actor2;
s16* enemyIDs;
s32 numEnemies;
s32 i, j;
u16 enemyID1, enemyID2;
s32 priority1, priority2;
s32 tempPriority;
if (isInitialCall) {
script->functionTemp[0] = 0;
}
switch (script->functionTemp[0]) {
case 0:
script->functionTemp[1] = create_actor(evt_get_variable(script, *args++));
script->functionTemp[2] = evt_get_variable(script, *args++);
script->functionTemp[0] = 1;
break;
case 1:
actor2 = (Actor*) script->functionTemp[1];
if (does_script_exist(actor2->takeTurnID) == FALSE) {
enemyIDs = battleStatus->enemyIDs;
if (battleStatus->unk_170 == 0) {
numEnemies = 0;
for (i = 0; i < ARRAY_COUNT(battleStatus->enemyActors); i++) {
if (battleStatus->enemyActors[i]) {
battleStatus->enemyIDs[numEnemies++] = i | 0x200;
}
}
battleStatus->numEnemyActors = numEnemies;
if (script->functionTemp[2] != 0) {
tempPriority = -1000;
} else {
tempPriority = 1000;
}
enemyIDs = battleStatus->enemyIDs;
for (i = 0; i < numEnemies - 1; i++) {
for (j = i + 1; j < numEnemies; j++) {
enemyID1 = enemyIDs[i];
actor1 = battleStatus->enemyActors[(u8) enemyID1];
priority1 = actor1->turnPriority;
if (actor1 == actor2) {
priority1 += tempPriority;
}
enemyID2 = enemyIDs[j];
actor1 = battleStatus->enemyActors[(u8) enemyID2];
priority2 = actor1->turnPriority;
if (actor1 == actor2) {
priority2 += tempPriority;
}
if (priority1 < priority2) {
enemyIDs[i] = enemyID2;
enemyIDs[j] = enemyID1;
}
}
}
} else {
numEnemies = battleStatus->numEnemyActors;
for (i = 0; i < numEnemies; i++){
if (battleStatus->enemyActors[(u8) enemyIDs[i]] == actor2) {
enemyIDs[i] = -1;
}
}
if (script->functionTemp[2] == 0) {
for (i = numEnemies; i >= battleStatus->unk_170; i--) {
battleStatus->enemyIDs[i] = battleStatus->enemyIDs[i - 1];
}
battleStatus->enemyIDs[battleStatus->unk_170 - 1] = actor2->actorID;
battleStatus->numEnemyActors++;
battleStatus->unk_170++;
} else {
battleStatus->enemyIDs[battleStatus->numEnemyActors] = actor2->actorID;
battleStatus->numEnemyActors++;
}
}
script->varTable[0] = actor2->actorID;
return ApiStatus_DONE2;
}
break;
}
return ApiStatus_BLOCK;
}
ApiStatus GetOwnerID(Evt* script, s32 isInitialCall) {
evt_set_variable(script, *script->ptrReadPos, script->owner1.actorID);
@ -2193,7 +2278,27 @@ INCLUDE_ASM(s32, "197F40", RemoveActorDecoration);
INCLUDE_ASM(s32, "197F40", ModifyActorDecoration);
INCLUDE_ASM(s32, "197F40", UseIdleAnimation);
ApiStatus UseIdleAnimation(Evt* script, s32 isInitialCall) {
Actor* actor;
s32* args = script->ptrReadPos;
s32 actorID = evt_get_variable(script, *args++);
s32 temp_s0_3 = evt_get_variable(script, *args++);
if (actorID == ACTOR_SELF) {
actorID = script->owner1.actorID;
}
actor = get_actor(actorID);
if (temp_s0_3 == 0) {
actor->flags &= ~ACTOR_FLAG_4000000;
actor->flags &= ~ACTOR_FLAG_8000000;
func_80266E40(actor);
} else {
actor->flags |= ACTOR_FLAG_4000000;
}
return ApiStatus_DONE2;
}
INCLUDE_ASM(s32, "197F40", func_8026F1A0);

View File

@ -1,193 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel SummonEnemy
/* 19C444 8026DB64 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 19C448 8026DB68 AFB20018 */ sw $s2, 0x18($sp)
/* 19C44C 8026DB6C 0080902D */ daddu $s2, $a0, $zero
/* 19C450 8026DB70 AFB10014 */ sw $s1, 0x14($sp)
/* 19C454 8026DB74 3C11800E */ lui $s1, %hi(gBattleStatus)
/* 19C458 8026DB78 2631C070 */ addiu $s1, $s1, %lo(gBattleStatus)
/* 19C45C 8026DB7C AFBF001C */ sw $ra, 0x1c($sp)
/* 19C460 8026DB80 AFB00010 */ sw $s0, 0x10($sp)
/* 19C464 8026DB84 8E50000C */ lw $s0, 0xc($s2)
/* 19C468 8026DB88 54A00001 */ bnel $a1, $zero, .L8026DB90
/* 19C46C 8026DB8C AE400070 */ sw $zero, 0x70($s2)
.L8026DB90:
/* 19C470 8026DB90 8E430070 */ lw $v1, 0x70($s2)
/* 19C474 8026DB94 10600005 */ beqz $v1, .L8026DBAC
/* 19C478 8026DB98 24020001 */ addiu $v0, $zero, 1
/* 19C47C 8026DB9C 10620011 */ beq $v1, $v0, .L8026DBE4
/* 19C480 8026DBA0 0000102D */ daddu $v0, $zero, $zero
/* 19C484 8026DBA4 0809B77A */ j .L8026DDE8
/* 19C488 8026DBA8 00000000 */ nop
.L8026DBAC:
/* 19C48C 8026DBAC 8E050000 */ lw $a1, ($s0)
/* 19C490 8026DBB0 26100004 */ addiu $s0, $s0, 4
/* 19C494 8026DBB4 0C0B1EAF */ jal evt_get_variable
/* 19C498 8026DBB8 0240202D */ daddu $a0, $s2, $zero
/* 19C49C 8026DBBC 0C0994E9 */ jal create_actor
/* 19C4A0 8026DBC0 0040202D */ daddu $a0, $v0, $zero
/* 19C4A4 8026DBC4 AE420074 */ sw $v0, 0x74($s2)
/* 19C4A8 8026DBC8 8E050000 */ lw $a1, ($s0)
/* 19C4AC 8026DBCC 0C0B1EAF */ jal evt_get_variable
/* 19C4B0 8026DBD0 0240202D */ daddu $a0, $s2, $zero
/* 19C4B4 8026DBD4 AE420078 */ sw $v0, 0x78($s2)
/* 19C4B8 8026DBD8 24020001 */ addiu $v0, $zero, 1
/* 19C4BC 8026DBDC 0809B779 */ j .L8026DDE4
/* 19C4C0 8026DBE0 AE420070 */ sw $v0, 0x70($s2)
.L8026DBE4:
/* 19C4C4 8026DBE4 8E500074 */ lw $s0, 0x74($s2)
/* 19C4C8 8026DBE8 0C0B1059 */ jal does_script_exist
/* 19C4CC 8026DBEC 8E0401E4 */ lw $a0, 0x1e4($s0)
/* 19C4D0 8026DBF0 1440007D */ bnez $v0, .L8026DDE8
/* 19C4D4 8026DBF4 0000102D */ daddu $v0, $zero, $zero
/* 19C4D8 8026DBF8 82220170 */ lb $v0, 0x170($s1)
/* 19C4DC 8026DBFC 14400040 */ bnez $v0, .L8026DD00
/* 19C4E0 8026DC00 262E0140 */ addiu $t6, $s1, 0x140
/* 19C4E4 8026DC04 0000582D */ daddu $t3, $zero, $zero
/* 19C4E8 8026DC08 0160202D */ daddu $a0, $t3, $zero
/* 19C4EC 8026DC0C 0220282D */ daddu $a1, $s1, $zero
/* 19C4F0 8026DC10 0220182D */ daddu $v1, $s1, $zero
.L8026DC14:
/* 19C4F4 8026DC14 8CA200E0 */ lw $v0, 0xe0($a1)
/* 19C4F8 8026DC18 50400006 */ beql $v0, $zero, .L8026DC34
/* 19C4FC 8026DC1C 24840001 */ addiu $a0, $a0, 1
/* 19C500 8026DC20 34820200 */ ori $v0, $a0, 0x200
/* 19C504 8026DC24 A4620140 */ sh $v0, 0x140($v1)
/* 19C508 8026DC28 24630002 */ addiu $v1, $v1, 2
/* 19C50C 8026DC2C 256B0001 */ addiu $t3, $t3, 1
/* 19C510 8026DC30 24840001 */ addiu $a0, $a0, 1
.L8026DC34:
/* 19C514 8026DC34 28820018 */ slti $v0, $a0, 0x18
/* 19C518 8026DC38 1440FFF6 */ bnez $v0, .L8026DC14
/* 19C51C 8026DC3C 24A50004 */ addiu $a1, $a1, 4
/* 19C520 8026DC40 A22B0171 */ sb $t3, 0x171($s1)
/* 19C524 8026DC44 8E420078 */ lw $v0, 0x78($s2)
/* 19C528 8026DC48 10400002 */ beqz $v0, .L8026DC54
/* 19C52C 8026DC4C 240C03E8 */ addiu $t4, $zero, 0x3e8
/* 19C530 8026DC50 240CFC18 */ addiu $t4, $zero, -0x3e8
.L8026DC54:
/* 19C534 8026DC54 262E0140 */ addiu $t6, $s1, 0x140
/* 19C538 8026DC58 2562FFFF */ addiu $v0, $t3, -1
/* 19C53C 8026DC5C 1840005D */ blez $v0, .L8026DDD4
/* 19C540 8026DC60 0000202D */ daddu $a0, $zero, $zero
/* 19C544 8026DC64 0040782D */ daddu $t7, $v0, $zero
/* 19C548 8026DC68 01C0682D */ daddu $t5, $t6, $zero
.L8026DC6C:
/* 19C54C 8026DC6C 24880001 */ addiu $t0, $a0, 1
/* 19C550 8026DC70 010B102A */ slt $v0, $t0, $t3
/* 19C554 8026DC74 5040001D */ beql $v0, $zero, .L8026DCEC
/* 19C558 8026DC78 24840001 */ addiu $a0, $a0, 1
/* 19C55C 8026DC7C 01A0502D */ daddu $t2, $t5, $zero
/* 19C560 8026DC80 00081040 */ sll $v0, $t0, 1
/* 19C564 8026DC84 004E3821 */ addu $a3, $v0, $t6
.L8026DC88:
/* 19C568 8026DC88 95490000 */ lhu $t1, ($t2)
/* 19C56C 8026DC8C 312200FF */ andi $v0, $t1, 0xff
/* 19C570 8026DC90 00021080 */ sll $v0, $v0, 2
/* 19C574 8026DC94 02221021 */ addu $v0, $s1, $v0
/* 19C578 8026DC98 8C4200E0 */ lw $v0, 0xe0($v0)
/* 19C57C 8026DC9C 804501F1 */ lb $a1, 0x1f1($v0)
/* 19C580 8026DCA0 50500001 */ beql $v0, $s0, .L8026DCA8
/* 19C584 8026DCA4 00AC2821 */ addu $a1, $a1, $t4
.L8026DCA8:
/* 19C588 8026DCA8 94E60000 */ lhu $a2, ($a3)
/* 19C58C 8026DCAC 30C200FF */ andi $v0, $a2, 0xff
/* 19C590 8026DCB0 00021080 */ sll $v0, $v0, 2
/* 19C594 8026DCB4 02221021 */ addu $v0, $s1, $v0
/* 19C598 8026DCB8 8C4200E0 */ lw $v0, 0xe0($v0)
/* 19C59C 8026DCBC 804301F1 */ lb $v1, 0x1f1($v0)
/* 19C5A0 8026DCC0 50500001 */ beql $v0, $s0, .L8026DCC8
/* 19C5A4 8026DCC4 006C1821 */ addu $v1, $v1, $t4
.L8026DCC8:
/* 19C5A8 8026DCC8 00A3102A */ slt $v0, $a1, $v1
/* 19C5AC 8026DCCC 10400003 */ beqz $v0, .L8026DCDC
/* 19C5B0 8026DCD0 25080001 */ addiu $t0, $t0, 1
/* 19C5B4 8026DCD4 A5460000 */ sh $a2, ($t2)
/* 19C5B8 8026DCD8 A4E90000 */ sh $t1, ($a3)
.L8026DCDC:
/* 19C5BC 8026DCDC 010B102A */ slt $v0, $t0, $t3
/* 19C5C0 8026DCE0 1440FFE9 */ bnez $v0, .L8026DC88
/* 19C5C4 8026DCE4 24E70002 */ addiu $a3, $a3, 2
/* 19C5C8 8026DCE8 24840001 */ addiu $a0, $a0, 1
.L8026DCEC:
/* 19C5CC 8026DCEC 008F102A */ slt $v0, $a0, $t7
/* 19C5D0 8026DCF0 1440FFDE */ bnez $v0, .L8026DC6C
/* 19C5D4 8026DCF4 25AD0002 */ addiu $t5, $t5, 2
/* 19C5D8 8026DCF8 0809B775 */ j .L8026DDD4
/* 19C5DC 8026DCFC 00000000 */ nop
.L8026DD00:
/* 19C5E0 8026DD00 822B0171 */ lb $t3, 0x171($s1)
/* 19C5E4 8026DD04 1960000D */ blez $t3, .L8026DD3C
/* 19C5E8 8026DD08 0000202D */ daddu $a0, $zero, $zero
/* 19C5EC 8026DD0C 2405FFFF */ addiu $a1, $zero, -1
/* 19C5F0 8026DD10 01C0182D */ daddu $v1, $t6, $zero
.L8026DD14:
/* 19C5F4 8026DD14 90620001 */ lbu $v0, 1($v1)
/* 19C5F8 8026DD18 00021080 */ sll $v0, $v0, 2
/* 19C5FC 8026DD1C 02221021 */ addu $v0, $s1, $v0
/* 19C600 8026DD20 8C4200E0 */ lw $v0, 0xe0($v0)
/* 19C604 8026DD24 50500001 */ beql $v0, $s0, .L8026DD2C
/* 19C608 8026DD28 A4650000 */ sh $a1, ($v1)
.L8026DD2C:
/* 19C60C 8026DD2C 24840001 */ addiu $a0, $a0, 1
/* 19C610 8026DD30 008B102A */ slt $v0, $a0, $t3
/* 19C614 8026DD34 1440FFF7 */ bnez $v0, .L8026DD14
/* 19C618 8026DD38 24630002 */ addiu $v1, $v1, 2
.L8026DD3C:
/* 19C61C 8026DD3C 8E420078 */ lw $v0, 0x78($s2)
/* 19C620 8026DD40 1440001C */ bnez $v0, .L8026DDB4
/* 19C624 8026DD44 0160202D */ daddu $a0, $t3, $zero
/* 19C628 8026DD48 82220170 */ lb $v0, 0x170($s1)
/* 19C62C 8026DD4C 0082102A */ slt $v0, $a0, $v0
/* 19C630 8026DD50 1440000B */ bnez $v0, .L8026DD80
/* 19C634 8026DD54 00041840 */ sll $v1, $a0, 1
.L8026DD58:
/* 19C638 8026DD58 2484FFFF */ addiu $a0, $a0, -1
/* 19C63C 8026DD5C 00041040 */ sll $v0, $a0, 1
/* 19C640 8026DD60 02221021 */ addu $v0, $s1, $v0
/* 19C644 8026DD64 94420140 */ lhu $v0, 0x140($v0)
/* 19C648 8026DD68 02231821 */ addu $v1, $s1, $v1
/* 19C64C 8026DD6C A4620140 */ sh $v0, 0x140($v1)
/* 19C650 8026DD70 82220170 */ lb $v0, 0x170($s1)
/* 19C654 8026DD74 0082102A */ slt $v0, $a0, $v0
/* 19C658 8026DD78 1040FFF7 */ beqz $v0, .L8026DD58
/* 19C65C 8026DD7C 00041840 */ sll $v1, $a0, 1
.L8026DD80:
/* 19C660 8026DD80 82220170 */ lb $v0, 0x170($s1)
/* 19C664 8026DD84 96030192 */ lhu $v1, 0x192($s0)
/* 19C668 8026DD88 2442FFFF */ addiu $v0, $v0, -1
/* 19C66C 8026DD8C 00021040 */ sll $v0, $v0, 1
/* 19C670 8026DD90 02221021 */ addu $v0, $s1, $v0
/* 19C674 8026DD94 A4430140 */ sh $v1, 0x140($v0)
/* 19C678 8026DD98 92220171 */ lbu $v0, 0x171($s1)
/* 19C67C 8026DD9C 92230170 */ lbu $v1, 0x170($s1)
/* 19C680 8026DDA0 24420001 */ addiu $v0, $v0, 1
/* 19C684 8026DDA4 24630001 */ addiu $v1, $v1, 1
/* 19C688 8026DDA8 A2220171 */ sb $v0, 0x171($s1)
/* 19C68C 8026DDAC 0809B775 */ j .L8026DDD4
/* 19C690 8026DDB0 A2230170 */ sb $v1, 0x170($s1)
.L8026DDB4:
/* 19C694 8026DDB4 82220171 */ lb $v0, 0x171($s1)
/* 19C698 8026DDB8 96030192 */ lhu $v1, 0x192($s0)
/* 19C69C 8026DDBC 00021040 */ sll $v0, $v0, 1
/* 19C6A0 8026DDC0 02221021 */ addu $v0, $s1, $v0
/* 19C6A4 8026DDC4 A4430140 */ sh $v1, 0x140($v0)
/* 19C6A8 8026DDC8 92220171 */ lbu $v0, 0x171($s1)
/* 19C6AC 8026DDCC 24420001 */ addiu $v0, $v0, 1
/* 19C6B0 8026DDD0 A2220171 */ sb $v0, 0x171($s1)
.L8026DDD4:
/* 19C6B4 8026DDD4 86030192 */ lh $v1, 0x192($s0)
/* 19C6B8 8026DDD8 24020002 */ addiu $v0, $zero, 2
/* 19C6BC 8026DDDC 0809B77A */ j .L8026DDE8
/* 19C6C0 8026DDE0 AE430084 */ sw $v1, 0x84($s2)
.L8026DDE4:
/* 19C6C4 8026DDE4 0000102D */ daddu $v0, $zero, $zero
.L8026DDE8:
/* 19C6C8 8026DDE8 8FBF001C */ lw $ra, 0x1c($sp)
/* 19C6CC 8026DDEC 8FB20018 */ lw $s2, 0x18($sp)
/* 19C6D0 8026DDF0 8FB10014 */ lw $s1, 0x14($sp)
/* 19C6D4 8026DDF4 8FB00010 */ lw $s0, 0x10($sp)
/* 19C6D8 8026DDF8 03E00008 */ jr $ra
/* 19C6DC 8026DDFC 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -1,52 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel UseIdleAnimation
/* 19D9CC 8026F0EC 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 19D9D0 8026F0F0 AFB20018 */ sw $s2, 0x18($sp)
/* 19D9D4 8026F0F4 0080902D */ daddu $s2, $a0, $zero
/* 19D9D8 8026F0F8 AFBF001C */ sw $ra, 0x1c($sp)
/* 19D9DC 8026F0FC AFB10014 */ sw $s1, 0x14($sp)
/* 19D9E0 8026F100 AFB00010 */ sw $s0, 0x10($sp)
/* 19D9E4 8026F104 8E50000C */ lw $s0, 0xc($s2)
/* 19D9E8 8026F108 8E050000 */ lw $a1, ($s0)
/* 19D9EC 8026F10C 0C0B1EAF */ jal evt_get_variable
/* 19D9F0 8026F110 26100004 */ addiu $s0, $s0, 4
/* 19D9F4 8026F114 0040882D */ daddu $s1, $v0, $zero
/* 19D9F8 8026F118 8E050000 */ lw $a1, ($s0)
/* 19D9FC 8026F11C 0C0B1EAF */ jal evt_get_variable
/* 19DA00 8026F120 0240202D */ daddu $a0, $s2, $zero
/* 19DA04 8026F124 0040802D */ daddu $s0, $v0, $zero
/* 19DA08 8026F128 2402FF81 */ addiu $v0, $zero, -0x7f
/* 19DA0C 8026F12C 16220002 */ bne $s1, $v0, .L8026F138
/* 19DA10 8026F130 00000000 */ nop
/* 19DA14 8026F134 8E510148 */ lw $s1, 0x148($s2)
.L8026F138:
/* 19DA18 8026F138 0C09A75B */ jal get_actor
/* 19DA1C 8026F13C 0220202D */ daddu $a0, $s1, $zero
/* 19DA20 8026F140 1600000C */ bnez $s0, .L8026F174
/* 19DA24 8026F144 0040202D */ daddu $a0, $v0, $zero
/* 19DA28 8026F148 3C05FBFF */ lui $a1, 0xfbff
/* 19DA2C 8026F14C 34A5FFFF */ ori $a1, $a1, 0xffff
/* 19DA30 8026F150 3C03F7FF */ lui $v1, 0xf7ff
/* 19DA34 8026F154 8C820000 */ lw $v0, ($a0)
/* 19DA38 8026F158 3463FFFF */ ori $v1, $v1, 0xffff
/* 19DA3C 8026F15C 00451024 */ and $v0, $v0, $a1
/* 19DA40 8026F160 00431024 */ and $v0, $v0, $v1
/* 19DA44 8026F164 0C099B90 */ jal func_80266E40
/* 19DA48 8026F168 AC820000 */ sw $v0, ($a0)
/* 19DA4C 8026F16C 0809BC61 */ j .L8026F184
/* 19DA50 8026F170 00000000 */ nop
.L8026F174:
/* 19DA54 8026F174 8C820000 */ lw $v0, ($a0)
/* 19DA58 8026F178 3C030400 */ lui $v1, 0x400
/* 19DA5C 8026F17C 00431025 */ or $v0, $v0, $v1
/* 19DA60 8026F180 AC820000 */ sw $v0, ($a0)
.L8026F184:
/* 19DA64 8026F184 8FBF001C */ lw $ra, 0x1c($sp)
/* 19DA68 8026F188 8FB20018 */ lw $s2, 0x18($sp)
/* 19DA6C 8026F18C 8FB10014 */ lw $s1, 0x14($sp)
/* 19DA70 8026F190 8FB00010 */ lw $s0, 0x10($sp)
/* 19DA74 8026F194 24020002 */ addiu $v0, $zero, 2
/* 19DA78 8026F198 03E00008 */ jr $ra
/* 19DA7C 8026F19C 27BD0020 */ addiu $sp, $sp, 0x20