debuff effect & 19FAF0 funcs (#653)

* debuff.c

* 19FAF0 funcs

* clean

* some API stuff

* clean

* PR
This commit is contained in:
Ethan Roseman 2022-02-21 11:05:36 -05:00 committed by GitHub
parent fb828bf8da
commit 48808572d9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
25 changed files with 721 additions and 1672 deletions

View File

@ -1859,8 +1859,8 @@ typedef struct Actor {
/* 0x1F3 */ s8 numParts;
/* 0x1F4 */ struct ActorPart* partsTable;
/* 0x1F8 */ s16 lastDamageTaken;
/* 0x1FA */ u16 hpChangeCounter;
/* 0x1FC */ s16 damageCounter;
/* 0x1FA */ s16 hpChangeCounter;
/* 0x1FC */ u16 damageCounter;
/* 0x1FE */ char unk_1FE[2];
/* 0x200 */ s32** unk_200; // Probably a struct but not sure what yet
/* 0x204 */ s8 unk_204;

View File

@ -480,6 +480,31 @@ typedef struct BalloonFXData {
/* 0x20 */ s32 unk_20;
} BalloonFXData; // size = 0x24
typedef struct DebuffFXData {
/* 0x00 */ s16 unk_00;
/* 0x02 */ char unk_02[2];
/* 0x04 */ f32 unk_04;
/* 0x08 */ f32 unk_08;
/* 0x0C */ f32 unk_0C;
/* 0x10 */ f32 unk_10;
/* 0x14 */ f32 unk_14;
/* 0x18 */ f32 unk_18;
/* 0x1C */ f32 unk_1C;
/* 0x20 */ f32 unk_20;
/* 0x24 */ s32 unk_24;
/* 0x28 */ s32 unk_28;
/* 0x2C */ f32 unk_2C;
/* 0x30 */ f32 unk_30;
/* 0x34 */ s32 unk_34;
/* 0x38 */ u8 unk_38;
/* 0x39 */ u8 unk_39;
/* 0x3A */ u8 unk_3A;
/* 0x3B */ u8 unk_3B;
/* 0x3C */ u8 unk_3C;
/* 0x3D */ u8 unk_3D;
/* 0x3E */ char unk_3E[2];
} DebuffFXData; // size = 0x40
typedef struct Effect134 {
/* 0x00 */ s32 unk_00;
/* 0x04 */ f32 unk_04;
@ -678,7 +703,7 @@ void fx_stars_spread(s32, f32, f32, f32, s32, s32);
void fx_steam_burst(s32, f32, f32, f32, f32, s32);
void fx_stars_orbiting(s32, f32, f32, f32, f32, s32, s32*);
void fx_big_snowflakes(s32, f32, f32, f32);
void fx_debuff(s32, f32, f32, f32);
EffectInstance* fx_debuff(s32, f32, f32, f32);
void fx_green_impact(s32, f32, f32, f32, f32);
EffectInstance* fx_radial_shimmer(s32, f32, f32, f32, f32, s32);
EffectInstance* fx_ending_decals(s32, f32, f32, f32, f32, s32*);

View File

@ -76,7 +76,7 @@ FX_MAIN(stars_spread_main);
FX_MAIN(steam_burst_main);
FX_MAIN(stars_orbiting_main);
FX_MAIN(big_snowflakes_main);
FX_MAIN(debuff_main);
EffectInstance* debuff_main(s32, f32, f32, f32);
FX_MAIN(green_impact_main);
FX_MAIN(radial_shimmer_main);
FX_MAIN(ending_decals_main);

View File

@ -516,6 +516,7 @@ enum SoundIDs {
SOUND_HIT_NORMAL = 0x000000E9,
SOUND_HIT_FIRE = 0x000000EA,
SOUND_HIT_ICE = 0x000000EB,
SOUND_108 = 0x00000108,
SOUND_IMMUNE = 0x0000010C,
SOUND_HIT_BONES = 0x0000010D,
SOUND_STEP1 = 0x00000141,

View File

@ -796,6 +796,14 @@ void func_8025DE88(ActorPart*, s32);
void func_800E9894(void);
void func_8013A854(u32);
void disable_player_blur(void);
void enable_player_blur(void);
void func_80254950(void);
void func_802549A0(void);
void func_802549C0(void);
void set_goal_pos_to_part(ActorState* state, s32 actorID, s32 partIndex);
void init_encounters_ui(void);
void initialize_collision(void);
void render_entities(void);

View File

@ -528,40 +528,42 @@ ApiStatus ItemDamageEnemy(Evt* script, s32 isInitialCall) {
BattleStatus* battleStatus = &gBattleStatus;
Bytecode* args = script->ptrReadPos;
s32 itemDamageOut = *args++;
s32 a5;
s32 flags;
Actor* actor;
s32 itemDamage;
s32 flag = 0x10;
battleStatus->currentAttackElement = *args++;
battleStatus->currentAttackEventSuppression = 0;
battleStatus->currentAttackStatus = *args++;
battleStatus->currentAttackDamage = evt_get_variable(script, *args++);
a5 = *args++;
flags = *args++;
if ((a5 & 0x30) == 0x30) {
gBattleStatus.flags1 |= (BS_FLAGS1_10 | BS_FLAGS1_SP_EVT_ACTIVE);
} else if (a5 & flag) {
gBattleStatus.flags1 = (gBattleStatus.flags1 | flag) & ~BS_FLAGS1_SP_EVT_ACTIVE;
} else if (a5 & 0x20) {
gBattleStatus.flags1 = (gBattleStatus.flags1 & ~flag) | BS_FLAGS1_SP_EVT_ACTIVE;
if ((flags & (BS_FLAGS1_10 | BS_FLAGS1_SP_EVT_ACTIVE)) == (BS_FLAGS1_10 | BS_FLAGS1_SP_EVT_ACTIVE)) {
gBattleStatus.flags1 |= BS_FLAGS1_10 | BS_FLAGS1_SP_EVT_ACTIVE;
} else if (flags & BS_FLAGS1_10) {
gBattleStatus.flags1 |= BS_FLAGS1_10;
gBattleStatus.flags1 &= ~BS_FLAGS1_SP_EVT_ACTIVE;
} else if (flags & BS_FLAGS1_SP_EVT_ACTIVE) {
gBattleStatus.flags1 &= ~BS_FLAGS1_10;
gBattleStatus.flags1 |= BS_FLAGS1_SP_EVT_ACTIVE;
} else {
gBattleStatus.flags1 = (gBattleStatus.flags1 & ~flag) & ~BS_FLAGS1_SP_EVT_ACTIVE;
gBattleStatus.flags1 &= ~BS_FLAGS1_10;
gBattleStatus.flags1 &= ~BS_FLAGS1_SP_EVT_ACTIVE;
}
if (a5 & 0x40) {
if (flags & BS_FLAGS1_40) {
gBattleStatus.flags1 |= BS_FLAGS1_40;
} else {
gBattleStatus.flags1 &= ~BS_FLAGS1_40;
}
if (a5 & 0x200) {
if (flags & BS_FLAGS1_200) {
gBattleStatus.flags1 |= BS_FLAGS1_200;
} else {
gBattleStatus.flags1 &= ~BS_FLAGS1_200;
}
if (a5 & 0x80) {
if (flags & BS_FLAGS1_80) {
gBattleStatus.flags1 |= BS_FLAGS1_80;
} else {
gBattleStatus.flags1 &= ~BS_FLAGS1_80;
@ -572,7 +574,7 @@ ApiStatus ItemDamageEnemy(Evt* script, s32 isInitialCall) {
battleStatus->currentTargetPart = actor->targetPartIndex;
battleStatus->statusChance = battleStatus->currentAttackStatus;
if ((battleStatus->statusChance & 0xFF) == 0xFF) {
if (battleStatus->statusChance == 0xFF) {
battleStatus->statusChance = 0;
}
@ -595,41 +597,43 @@ ApiStatus ItemAfflictEnemy(Evt* script, s32 isInitialCall) {
BattleStatus* battleStatus = &gBattleStatus;
Bytecode* args = script->ptrReadPos;
s32 itemDamageOut = *args++;
s32 a5;
Actor* actor;
s32 itemDamage;
s32 flag = 0x10;
s32 flags;
battleStatus->currentAttackElement = *args++;
battleStatus->currentAttackEventSuppression = 0;
battleStatus->currentAttackStatus = *args++;
battleStatus->currentAttackStatus |= evt_get_variable(script, *args++);
battleStatus->currentAttackDamage = evt_get_variable(script, *args++);
a5 = *args++;
flags = *args++;
if ((a5 & 0x30) == 0x30) {
gBattleStatus.flags1 |= (BS_FLAGS1_10 | BS_FLAGS1_SP_EVT_ACTIVE);
} else if (a5 & flag) {
gBattleStatus.flags1 = (gBattleStatus.flags1 | flag) & ~BS_FLAGS1_SP_EVT_ACTIVE;
} else if (a5 & 0x20) {
gBattleStatus.flags1 = (gBattleStatus.flags1 & ~flag) | BS_FLAGS1_SP_EVT_ACTIVE;
if ((flags & (BS_FLAGS1_10 | BS_FLAGS1_SP_EVT_ACTIVE)) == (BS_FLAGS1_10 | BS_FLAGS1_SP_EVT_ACTIVE)) {
gBattleStatus.flags1 |= BS_FLAGS1_10 | BS_FLAGS1_SP_EVT_ACTIVE;
} else if (flags & BS_FLAGS1_10) {
gBattleStatus.flags1 |= BS_FLAGS1_10;
gBattleStatus.flags1 &= ~BS_FLAGS1_SP_EVT_ACTIVE;
} else if (flags & BS_FLAGS1_SP_EVT_ACTIVE) {
gBattleStatus.flags1 &= ~BS_FLAGS1_10;
gBattleStatus.flags1 |= BS_FLAGS1_SP_EVT_ACTIVE;
} else {
gBattleStatus.flags1 = (gBattleStatus.flags1 & ~flag) & ~BS_FLAGS1_SP_EVT_ACTIVE;
gBattleStatus.flags1 &= ~BS_FLAGS1_10;
gBattleStatus.flags1 &= ~BS_FLAGS1_SP_EVT_ACTIVE;
}
if (a5 & 0x40) {
if (flags & BS_FLAGS1_40) {
gBattleStatus.flags1 |= BS_FLAGS1_40;
} else {
gBattleStatus.flags1 &= ~BS_FLAGS1_40;
}
if (a5 & 0x200) {
if (flags & BS_FLAGS1_200) {
gBattleStatus.flags1 |= BS_FLAGS1_200;
} else {
gBattleStatus.flags1 &= ~BS_FLAGS1_200;
}
if (a5 & 0x80) {
if (flags & BS_FLAGS1_80) {
gBattleStatus.flags1 |= BS_FLAGS1_80;
} else {
gBattleStatus.flags1 &= ~BS_FLAGS1_80;
@ -640,7 +644,7 @@ ApiStatus ItemAfflictEnemy(Evt* script, s32 isInitialCall) {
battleStatus->currentTargetPart = actor->targetPartIndex;
battleStatus->statusChance = battleStatus->currentAttackStatus;
if ((battleStatus->statusChance & 0xFF) == 0xFF) {
if (battleStatus->statusChance == 0xFF) {
battleStatus->statusChance = 0;
}
@ -663,40 +667,42 @@ ApiStatus func_80252B3C(Evt* script, s32 isInitialCall) {
BattleStatus* battleStatus = &gBattleStatus;
Bytecode* args = script->ptrReadPos;
s32 itemDamageOut = *args++;
s32 a5;
s32 flags;
Actor* actor;
s32 itemDamage;
s32 flag = 0x10;
battleStatus->currentAttackElement = *args++;
battleStatus->currentAttackEventSuppression = 0;
battleStatus->currentAttackStatus = evt_get_variable(script, *args++);
battleStatus->currentAttackDamage = evt_get_variable(script, *args++);
a5 = *args++;
flags = *args++;
if ((a5 & 0x30) == 0x30) {
gBattleStatus.flags1 |= (BS_FLAGS1_10 | BS_FLAGS1_SP_EVT_ACTIVE);
} else if (a5 & flag) {
gBattleStatus.flags1 = (gBattleStatus.flags1 | flag) & ~BS_FLAGS1_SP_EVT_ACTIVE;
} else if (a5 & 0x20) {
gBattleStatus.flags1 = (gBattleStatus.flags1 & ~flag) | BS_FLAGS1_SP_EVT_ACTIVE;
if ((flags & (BS_FLAGS1_10 | BS_FLAGS1_SP_EVT_ACTIVE)) == (BS_FLAGS1_10 | BS_FLAGS1_SP_EVT_ACTIVE)) {
gBattleStatus.flags1 |= BS_FLAGS1_10 | BS_FLAGS1_SP_EVT_ACTIVE;
} else if (flags & BS_FLAGS1_10) {
gBattleStatus.flags1 |= BS_FLAGS1_10;
gBattleStatus.flags1 &= ~BS_FLAGS1_SP_EVT_ACTIVE;
} else if (flags & BS_FLAGS1_SP_EVT_ACTIVE) {
gBattleStatus.flags1 &= ~BS_FLAGS1_10;
gBattleStatus.flags1 |= BS_FLAGS1_SP_EVT_ACTIVE;
} else {
gBattleStatus.flags1 = (gBattleStatus.flags1 & ~flag) & ~BS_FLAGS1_SP_EVT_ACTIVE;
gBattleStatus.flags1 &= ~BS_FLAGS1_10;
gBattleStatus.flags1 &= ~BS_FLAGS1_SP_EVT_ACTIVE;
}
if (a5 & 0x40) {
if (flags & BS_FLAGS1_40) {
gBattleStatus.flags1 |= BS_FLAGS1_40;
} else {
gBattleStatus.flags1 &= ~BS_FLAGS1_40;
}
if (a5 & 0x200) {
if (flags & BS_FLAGS1_200) {
gBattleStatus.flags1 |= BS_FLAGS1_200;
} else {
gBattleStatus.flags1 &= ~BS_FLAGS1_200;
}
if (a5 & 0x80) {
if (flags & BS_FLAGS1_80) {
gBattleStatus.flags1 |= BS_FLAGS1_80;
} else {
gBattleStatus.flags1 &= ~BS_FLAGS1_80;
@ -707,7 +713,7 @@ ApiStatus func_80252B3C(Evt* script, s32 isInitialCall) {
battleStatus->currentTargetPart = actor->targetPartIndex;
battleStatus->statusChance = battleStatus->currentAttackStatus;
if ((battleStatus->statusChance & 0xFF) == 0xFF) {
if (battleStatus->statusChance == 0xFF) {
battleStatus->statusChance = 0;
}
@ -730,40 +736,42 @@ ApiStatus ItemCheckHit(Evt* script, s32 isInitialCall) {
BattleStatus* battleStatus = &gBattleStatus;
Bytecode* args = script->ptrReadPos;
s32 itemDamageOut = *args++;
s32 a5;
s32 flags;
Actor* actor;
s32 itemDamage;
s32 flag = 0x10;
battleStatus->currentAttackElement = *args++;
battleStatus->currentAttackEventSuppression = 0;
battleStatus->currentAttackStatus = *args++;
battleStatus->currentAttackDamage = evt_get_variable(script, *args++);
a5 = *args++;
flags = *args++;
if ((a5 & 0x30) == 0x30) {
gBattleStatus.flags1 |= (BS_FLAGS1_10 | BS_FLAGS1_SP_EVT_ACTIVE);
} else if (a5 & flag) {
gBattleStatus.flags1 = (gBattleStatus.flags1 | flag) & ~BS_FLAGS1_SP_EVT_ACTIVE;
} else if (a5 & 0x20) {
gBattleStatus.flags1 = (gBattleStatus.flags1 & ~flag) | BS_FLAGS1_SP_EVT_ACTIVE;
if ((flags & (BS_FLAGS1_10 | BS_FLAGS1_SP_EVT_ACTIVE)) == (BS_FLAGS1_10 | BS_FLAGS1_SP_EVT_ACTIVE)) {
gBattleStatus.flags1 |= BS_FLAGS1_10 | BS_FLAGS1_SP_EVT_ACTIVE;
} else if (flags & BS_FLAGS1_10) {
gBattleStatus.flags1 |= BS_FLAGS1_10;
gBattleStatus.flags1 &= ~BS_FLAGS1_SP_EVT_ACTIVE;
} else if (flags & BS_FLAGS1_SP_EVT_ACTIVE) {
gBattleStatus.flags1 &= ~BS_FLAGS1_10;
gBattleStatus.flags1 |= BS_FLAGS1_SP_EVT_ACTIVE;
} else {
gBattleStatus.flags1 = (gBattleStatus.flags1 & ~flag) & ~BS_FLAGS1_SP_EVT_ACTIVE;
gBattleStatus.flags1 &= ~BS_FLAGS1_10;
gBattleStatus.flags1 &= ~BS_FLAGS1_SP_EVT_ACTIVE;
}
if (a5 & 0x40) {
if (flags & BS_FLAGS1_40) {
gBattleStatus.flags1 |= BS_FLAGS1_40;
} else {
gBattleStatus.flags1 &= ~BS_FLAGS1_40;
}
if (a5 & 0x200) {
if (flags & BS_FLAGS1_200) {
gBattleStatus.flags1 |= BS_FLAGS1_200;
} else {
gBattleStatus.flags1 &= ~BS_FLAGS1_200;
}
if (a5 & 0x80) {
if (flags & BS_FLAGS1_80) {
gBattleStatus.flags1 |= BS_FLAGS1_80;
} else {
gBattleStatus.flags1 &= ~BS_FLAGS1_80;
@ -774,7 +782,7 @@ ApiStatus ItemCheckHit(Evt* script, s32 isInitialCall) {
battleStatus->currentTargetPart = actor->targetPartIndex;
battleStatus->statusChance = battleStatus->currentAttackStatus;
if ((battleStatus->statusChance & 0xFF) == 0xFF) {
if (battleStatus->statusChance == 0xFF) {
battleStatus->statusChance = 0;
}

View File

@ -13,25 +13,70 @@ ApiStatus func_80271258(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
ApiStatus func_802712A0(Evt* script, s32 isInitialCall);
INCLUDE_ASM(ApiStatus, "19FAF0", func_802712A0, Evt* script, s32 isInitialCall);
ApiStatus func_802712A0(Evt* script, s32 isInitialCall) {
EffectInstance* debuffEffect = fx_debuff(2, script->varTable[0], script->varTable[1], script->varTable[2]);
ApiStatus func_80271328(Evt* script, s32 isInitialCall);
INCLUDE_ASM(ApiStatus, "19FAF0", func_80271328, Evt* script, s32 isInitialCall);
((DebuffFXData*)debuffEffect->data)->unk_38 = 200;
((DebuffFXData*)debuffEffect->data)->unk_39 = 120;
((DebuffFXData*)debuffEffect->data)->unk_3A = 0;
((DebuffFXData*)debuffEffect->data)->unk_3B = 234;
((DebuffFXData*)debuffEffect->data)->unk_3C = 193;
((DebuffFXData*)debuffEffect->data)->unk_3D = 0;
return ApiStatus_DONE2;
}
ApiStatus func_802713B0(Evt* script, s32 isInitialCall);
INCLUDE_ASM(ApiStatus, "19FAF0", func_802713B0, Evt* script, s32 isInitialCall);
ApiStatus func_80271328(Evt* script, s32 isInitialCall) {
EffectInstance* debuffEffect = fx_debuff(2, script->varTable[0], script->varTable[1], script->varTable[2]);
((DebuffFXData*)debuffEffect->data)->unk_38 = 60;
((DebuffFXData*)debuffEffect->data)->unk_39 = 160;
((DebuffFXData*)debuffEffect->data)->unk_3A = 0;
((DebuffFXData*)debuffEffect->data)->unk_3B = 90;
((DebuffFXData*)debuffEffect->data)->unk_3C = 240;
((DebuffFXData*)debuffEffect->data)->unk_3D = 0;
return ApiStatus_DONE2;
}
ApiStatus func_802713B0(Evt* script, s32 isInitialCall) {
EffectInstance* debuffEffect = fx_debuff(2, script->varTable[0], script->varTable[1], script->varTable[2]);
((DebuffFXData*)debuffEffect->data)->unk_38 = 205;
((DebuffFXData*)debuffEffect->data)->unk_39 = 0;
((DebuffFXData*)debuffEffect->data)->unk_3A = 40;
((DebuffFXData*)debuffEffect->data)->unk_3B = 205;
((DebuffFXData*)debuffEffect->data)->unk_3C = 32;
((DebuffFXData*)debuffEffect->data)->unk_3D = 242;
return ApiStatus_DONE2;
}
ApiStatus func_8027143C(Evt* script, s32 isInitialCall) {
fx_big_snowflakes(0, script->varTable[0], script->varTable[1], script->varTable[2]);
return ApiStatus_DONE2;
}
ApiStatus func_80271484(Evt* script, s32 isInitialCall);
INCLUDE_ASM(ApiStatus, "19FAF0", func_80271484, Evt* script, s32 isInitialCall);
ApiStatus func_80271484(Evt* script, s32 isInitialCall) {
Actor* actor = (Actor*)script->varTable[3];
f32 temp1 = actor->size.y;
f32 temp2 = actor->size.x / 2;
ApiStatus func_80271588(Evt* script, s32 isInitialCall);
INCLUDE_ASM(ApiStatus, "19FAF0", func_80271588, Evt* script, s32 isInitialCall);
fx_misc_particles(0, script->varTable[0], script->varTable[1], script->varTable[2], temp1, temp2, 1.0f, 10, 30);
fx_misc_particles(1, script->varTable[0], script->varTable[1], script->varTable[2], temp1, temp2, 1.0f, 10, 30);
return ApiStatus_DONE2;
}
ApiStatus func_80271588(Evt* script, s32 isInitialCall) {
s32 i;
for (i = 0; i < 20; i++) {
fx_floating_cloud_puff(0,
script->varTable[0] + rand_int(30) - 15,
script->varTable[1] + rand_int(20) - 15,
script->varTable[2] + 5,
1.0f,
25);
}
return ApiStatus_DONE2;
}
EvtScript DoSleepHit = {
EVT_CALL(func_80271210)
@ -79,6 +124,8 @@ EvtScript DoShrinkHit = {
EVT_END
};
void dispatch_damage_event_player_1(s32 damageAmount, s32 event);
void dispatch_event_player(s32 eventType) {
Actor* player = gBattleStatus.playerActor;
Evt* oldOnHitScript;
@ -126,12 +173,128 @@ void dispatch_event_player_continue_turn(s32 eventType) {
}
}
INCLUDE_ASM(s32, "19FAF0", calc_player_test_enemy);
s32 calc_player_test_enemy(void) {
BattleStatus* battleStatus = &gBattleStatus;
Actor* player = battleStatus->playerActor;
s32 currentTargetID = battleStatus->currentTargetID;
s32 targetPart = battleStatus->currentTargetPart;
ActorState* state = &player->state;
Actor* target;
ActorPart* part;
battleStatus->currentTargetID2 = battleStatus->currentTargetID;
battleStatus->currentTargetPart2 = battleStatus->currentTargetPart;
target = get_actor(currentTargetID);
if (target == NULL) {
return 0;
}
part = get_actor_part(target, targetPart);
ASSERT(part != NULL);
if (part->eventFlags & ACTOR_EVENT_FLAG_ILLUSORY) {
return 6;
} else if (target->transStatus == STATUS_E || ((part->eventFlags & ACTOR_EVENT_FLAG_800) &&
!(battleStatus->currentAttackElement & DAMAGE_TYPE_QUAKE)))
{
return 6;
} else if (target->stoneStatus == STATUS_STONE) {
sfx_play_sound_at_position(SOUND_IMMUNE, 0, state->goalPos.x, state->goalPos.y, state->goalPos.z);
return 8;
} else if ((battleStatus->currentAttackElement & DAMAGE_TYPE_JUMP) && (part->eventFlags & ACTOR_EVENT_FLAG_SPIKY_TOP) &&
!player_team_is_ability_active(player, 2))
{
sfx_play_sound_at_position(SOUND_108, 0, state->goalPos.x, state->goalPos.y, state->goalPos.z);
return 4;
} else if (!(battleStatus->currentAttackElement & (DAMAGE_TYPE_NO_CONTACT | DAMAGE_TYPE_JUMP)) &&
(part->eventFlags & ACTOR_EVENT_FLAG_SPIKY_FRONT) &&
(!(battleStatus->currentAttackEventSuppression & 4) &&
!player_team_is_ability_active(player, 2)))
{
sfx_play_sound_at_position(SOUND_108, 0, state->goalPos.x, state->goalPos.y, state->goalPos.z);
dispatch_damage_event_player_1(1, EVENT_SPIKE_CONTACT);
dispatch_event_actor(target, EVENT_SPIKE_TAUNT);
return -1;
} else if (player->staticStatus != STATUS_STATIC && target->staticStatus == STATUS_STATIC) {
return 7;
}
return 0;
}
INCLUDE_ASM(s32, "19FAF0", calc_player_damage_enemy);
s32 dispatch_damage_event_player(s32, s32, s32);
INCLUDE_ASM(s32, "19FAF0", dispatch_damage_event_player);
s32 dispatch_damage_event_player(s32 damageAmount, s32 event, s32 arg2) {
BattleStatus* battleStatus = &gBattleStatus;
PlayerData* playerData = &gPlayerData;
Actor* player = battleStatus->playerActor;
ActorState* state = &player->state;
s32 oldHPChangeCounter;
s32 flags;
s32 dispatchEvent;
s32 oldPlayerHP;
s32 temp;
battleStatus->currentAttackDamage = damageAmount;
temp = (s16)damageAmount; // usage of temp here required to match
player->hpChangeCounter += temp;
temp = player->hpChangeCounter;
player->currentHP = playerData->curHP;
player->damageCounter += temp;
player->hpChangeCounter -= temp;
battleStatus->lastAttackDamage = 0;
player->currentHP -= temp;
battleStatus->damageTaken += temp;
oldPlayerHP = player->currentHP;
dispatchEvent = event;
if (player->currentHP <= 0) {
battleStatus->lastAttackDamage += oldPlayerHP;
player->currentHP = 0;
dispatchEvent = EVENT_DEATH;
}
battleStatus->lastAttackDamage += temp;
playerData->curHP = player->currentHP;
if (dispatchEvent == EVENT_HIT_COMBO) {
dispatchEvent = EVENT_HIT;
}
if (dispatchEvent == EVENT_UNKNOWN_TRIGGER) {
dispatchEvent = EVENT_IMMUNE;
}
if (dispatchEvent == EVENT_DEATH) {
if (event == EVENT_SPIKE_CONTACT) {
dispatchEvent = EVENT_SPIKE_DEATH;
}
if (event == EVENT_BURN_CONTACT) {
dispatchEvent = EVENT_BURN_DEATH;
}
if (event == EVENT_SHOCK_HIT) {
dispatchEvent = EVENT_SHOCK_DEATH;
}
}
if (!arg2) {
set_goal_pos_to_part(state, ACTOR_PLAYER, 0);
sfx_play_sound_at_position(SOUND_HIT_NORMAL, 0, state->goalPos.x, state->goalPos.y, state->goalPos.z);
}
show_damage_popup(state->goalPos.x, state->goalPos.y, state->goalPos.z, battleStatus->lastAttackDamage, 1);
func_802666E4(player, state->goalPos.x, state->goalPos.y, state->goalPos.z, battleStatus->lastAttackDamage);
if (battleStatus->lastAttackDamage > 0) {
func_80267018(player, 1);
}
flags = (gBattleStatus.flags1 & (BS_FLAGS1_200 | BS_FLAGS1_40)) != 0;
dispatch_event_player(dispatchEvent);
return flags;
}
s32 dispatch_damage_event_player_0(s32 damageAmount, s32 event) {
BattleStatus* battleStatus = &gBattleStatus;
@ -161,7 +324,86 @@ ApiStatus GetMenuSelection(Evt* script, s32 isInitialCall) {
INCLUDE_ASM(s32, "19FAF0", func_80273444);
//float bs
#ifdef NON_MATCHING
s32 PlayerFallToGoal(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
Actor* player = gBattleStatus.playerActor;
ActorState* state = &player->state;
f32 temp_f0_2;
f32 temp_f20;
f32 goalX;
f32 goalY;
f32 goalZ;
f32 currentX, currentY, currentZ;
f32 new_var2;
f32 temp;
f32 xTemp, yTemp, zTemp;
f32 goalPosX, goalPosZ;
if (isInitialCall) {
script->functionTemp[0] = FALSE;
}
if (!script->functionTemp[0]) {
s32 moveTime = evt_get_variable(script, *args++);
state->currentPos.x = player->currentPos.x;
state->currentPos.z = player->currentPos.z;
currentX = state->currentPos.x;
state->currentPos.y = player->currentPos.y;
currentY = state->currentPos.y;
temp = state->currentPos.z;
goalX = state->goalPos.x;
goalY = state->goalPos.y;
goalZ = state->goalPos.z;
state->moveTime = moveTime;
state->angle = atan2(currentX, temp, goalX, goalZ);
state->distance = dist2D(currentX, temp, goalX, goalZ);
temp = goalY - currentY;
if (state->moveTime == 0) {
state->moveTime = state->distance / state->speed;
} else {
state->speed = state->distance / state->moveTime;
}
state->velocity = 0.0f;
state->acceleration = (((temp / state->moveTime) - state->velocity) / (-state->moveTime * 0.5));
set_animation(ACTOR_PLAYER, 0, state->animJumpRise);
script->functionTemp[0] = TRUE;
}
if (state->velocity < 0.0f) {
set_animation(0, 0, state->animJumpFall);
}
state->currentPos.y += state->velocity;
state->velocity -= state->acceleration;
add_xz_vec3f(&state->currentPos, state->speed, state->angle);
player->currentPos.x = state->currentPos.x;
player->currentPos.y = state->currentPos.y;
player->currentPos.z = state->currentPos.z;
state->moveTime--;
if (state->moveTime < 0) {
player->currentPos.x = state->goalPos.x;
player->currentPos.y = state->goalPos.y;
player->currentPos.z = state->goalPos.z;
play_movement_dust_effects(2, player->currentPos.x, player->currentPos.y, player->currentPos.z, player->yaw);
sfx_play_sound_at_position(SOUND_SOFT_LAND, 0, player->currentPos.x, player->currentPos.y, player->currentPos.z);
return ApiStatus_DONE1;
}
return ApiStatus_BLOCK;
}
#else
INCLUDE_ASM(s32, "19FAF0", PlayerFallToGoal, Evt* script, s32 isInitialCall);
#endif
ApiStatus PlayerLandJump(Evt *script, s32 isInitialCall) {
Actor* player = gBattleStatus.playerActor;
@ -220,11 +462,213 @@ ApiStatus GetPlayerHP(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
INCLUDE_ASM(s32, "19FAF0", PlayerDamageEnemy, Evt* script, s32 isInitialCall);
ApiStatus PlayerDamageEnemy(Evt* script, s32 isInitialCall) {
BattleStatus* battleStatus = &gBattleStatus;
Bytecode* args = script->ptrReadPos;
s32 a0 = *args++;
s32 flags;
Actor* target;
s32 temp_v0_2;
INCLUDE_ASM(s32, "19FAF0", PlayerPowerBounceEnemy, Evt* script, s32 isInitialCall);
battleStatus->currentAttackElement = *args++;
battleStatus->currentAttackEventSuppression = *args++;
battleStatus->currentAttackStatus = *args++;
battleStatus->currentAttackDamage = evt_get_variable(script, *args++);
battleStatus->powerBounceCounter = 0;
flags = *args++;
INCLUDE_ASM(s32, "19FAF0", PlayerTestEnemy, Evt* script, s32 isInitialCall);
if ((flags & (BS_FLAGS1_10 | BS_FLAGS1_SP_EVT_ACTIVE)) == (BS_FLAGS1_10 | BS_FLAGS1_SP_EVT_ACTIVE)) {
gBattleStatus.flags1 |= BS_FLAGS1_10 | BS_FLAGS1_SP_EVT_ACTIVE;
} else if (flags & BS_FLAGS1_10) {
gBattleStatus.flags1 |= BS_FLAGS1_10;
gBattleStatus.flags1 &= ~BS_FLAGS1_SP_EVT_ACTIVE;
} else if (flags & BS_FLAGS1_SP_EVT_ACTIVE) {
gBattleStatus.flags1 &= ~BS_FLAGS1_10;
gBattleStatus.flags1 |= BS_FLAGS1_SP_EVT_ACTIVE;
} else {
gBattleStatus.flags1 &= ~BS_FLAGS1_10;
gBattleStatus.flags1 &= ~BS_FLAGS1_SP_EVT_ACTIVE;
}
if (flags & BS_FLAGS1_40) {
gBattleStatus.flags1 |= BS_FLAGS1_40;
} else {
gBattleStatus.flags1 &= ~BS_FLAGS1_40;
}
if (flags & BS_FLAGS1_200) {
gBattleStatus.flags1 |= BS_FLAGS1_200;
} else {
gBattleStatus.flags1 &= ~BS_FLAGS1_200;
}
if (flags & BS_FLAGS1_80) {
gBattleStatus.flags1 |= BS_FLAGS1_80;
} else {
gBattleStatus.flags1 &= ~BS_FLAGS1_80;
}
if (flags & BS_FLAGS1_800) {
gBattleStatus.flags1 |= BS_FLAGS1_800;
} else {
gBattleStatus.flags1 &= ~BS_FLAGS1_800;
}
target = get_actor(script->owner1.actorID);
battleStatus->currentTargetID = target->targetActorID;
battleStatus->currentTargetPart = target->targetPartIndex;
battleStatus->statusChance = battleStatus->currentAttackStatus;
if (battleStatus->statusChance == 0xFF) {
battleStatus->statusChance = 0;
}
battleStatus->statusDuration = (battleStatus->currentAttackStatus & 0xF00) >> 8;
temp_v0_2 = calc_player_damage_enemy();
if (temp_v0_2 < 0) {
return ApiStatus_FINISH;
}
evt_set_variable(script, a0, temp_v0_2);
if (!does_script_exist_by_ref(script)) {
return ApiStatus_FINISH;
}
return ApiStatus_DONE2;
}
ApiStatus PlayerPowerBounceEnemy(Evt* script, s32 isInitialCall) {
BattleStatus* battleStatus = &gBattleStatus;
Bytecode* args = script->ptrReadPos;
s32 a0 = *args++;
s32 flags;
Actor* target;
s32 temp_v0_2;
battleStatus->currentAttackElement = *args++;
battleStatus->currentAttackEventSuppression = *args++;
battleStatus->currentAttackStatus = *args++;
battleStatus->currentAttackDamage = evt_get_variable(script, *args++);
battleStatus->powerBounceCounter = evt_get_variable(script, *args++);
flags = *args++;
if ((flags & (BS_FLAGS1_10 | BS_FLAGS1_SP_EVT_ACTIVE)) == (BS_FLAGS1_10 | BS_FLAGS1_SP_EVT_ACTIVE)) {
gBattleStatus.flags1 |= BS_FLAGS1_10 | BS_FLAGS1_SP_EVT_ACTIVE;
} else if (flags & BS_FLAGS1_10) {
gBattleStatus.flags1 |= BS_FLAGS1_10;
gBattleStatus.flags1 &= ~BS_FLAGS1_SP_EVT_ACTIVE;
} else if (flags & BS_FLAGS1_SP_EVT_ACTIVE) {
gBattleStatus.flags1 &= ~BS_FLAGS1_10;
gBattleStatus.flags1 |= BS_FLAGS1_SP_EVT_ACTIVE;
} else {
gBattleStatus.flags1 &= ~BS_FLAGS1_10;
gBattleStatus.flags1 &= ~BS_FLAGS1_SP_EVT_ACTIVE;
}
if (flags & BS_FLAGS1_40) {
gBattleStatus.flags1 |= BS_FLAGS1_40;
} else {
gBattleStatus.flags1 &= ~BS_FLAGS1_40;
}
if (flags & BS_FLAGS1_200) {
gBattleStatus.flags1 |= BS_FLAGS1_200;
} else {
gBattleStatus.flags1 &= ~BS_FLAGS1_200;
}
if (flags & BS_FLAGS1_80) {
gBattleStatus.flags1 |= BS_FLAGS1_80;
} else {
gBattleStatus.flags1 &= ~BS_FLAGS1_80;
}
if (flags & BS_FLAGS1_800) {
gBattleStatus.flags1 |= BS_FLAGS1_800;
} else {
gBattleStatus.flags1 &= ~BS_FLAGS1_800;
}
target = get_actor(script->owner1.actorID);
battleStatus->currentTargetID = target->targetActorID;
battleStatus->currentTargetPart = target->targetPartIndex;
battleStatus->statusChance = battleStatus->currentAttackStatus;
if (battleStatus->statusChance == 0xFF) {
battleStatus->statusChance = 0;
}
battleStatus->statusDuration = (battleStatus->currentAttackStatus & 0xF00) >> 8;
temp_v0_2 = calc_player_damage_enemy();
if (temp_v0_2 < 0) {
return ApiStatus_FINISH;
}
evt_set_variable(script, a0, temp_v0_2);
if (!does_script_exist_by_ref(script)) {
return ApiStatus_FINISH;
}
return ApiStatus_DONE2;
}
ApiStatus PlayerTestEnemy(Evt* script, s32 isInitialCall) {
BattleStatus* battleStatus = &gBattleStatus;
Bytecode* args = script->ptrReadPos;
s32 a0 = *args++;
s32 flags;
Actor* target;
s32 temp_v0_2;
battleStatus->currentAttackElement = *args++;
battleStatus->currentAttackEventSuppression = *args++;
battleStatus->currentAttackStatus = *args++;
battleStatus->currentAttackDamage = evt_get_variable(script, *args++);
battleStatus->powerBounceCounter = 0;
flags = *args++;
if ((flags & (BS_FLAGS1_10 | BS_FLAGS1_SP_EVT_ACTIVE)) == (BS_FLAGS1_10 | BS_FLAGS1_SP_EVT_ACTIVE)) {
gBattleStatus.flags1 |= BS_FLAGS1_10 | BS_FLAGS1_SP_EVT_ACTIVE;
} else if (flags & BS_FLAGS1_10) {
gBattleStatus.flags1 |= BS_FLAGS1_10;
gBattleStatus.flags1 &= ~BS_FLAGS1_SP_EVT_ACTIVE;
} else if (flags & BS_FLAGS1_SP_EVT_ACTIVE) {
gBattleStatus.flags1 &= ~BS_FLAGS1_10;
gBattleStatus.flags1 |= BS_FLAGS1_SP_EVT_ACTIVE;
} else {
gBattleStatus.flags1 &= ~BS_FLAGS1_10;
gBattleStatus.flags1 &= ~BS_FLAGS1_SP_EVT_ACTIVE;
}
if (flags & BS_FLAGS1_40) {
gBattleStatus.flags1 |= BS_FLAGS1_40;
} else {
gBattleStatus.flags1 &= ~BS_FLAGS1_40;
}
if (flags & BS_FLAGS1_200) {
gBattleStatus.flags1 |= BS_FLAGS1_200;
} else {
gBattleStatus.flags1 &= ~BS_FLAGS1_200;
}
if (flags & BS_FLAGS1_80) {
gBattleStatus.flags1 |= BS_FLAGS1_80;
} else {
gBattleStatus.flags1 &= ~BS_FLAGS1_80;
}
if (flags & BS_FLAGS1_800) {
gBattleStatus.flags1 |= BS_FLAGS1_800;
} else {
gBattleStatus.flags1 &= ~BS_FLAGS1_800;
}
target = get_actor(script->owner1.actorID);
battleStatus->currentTargetID = target->targetActorID;
battleStatus->currentTargetPart = target->targetPartIndex;
battleStatus->statusChance = battleStatus->currentAttackStatus;
if (battleStatus->statusChance == 0xFF) {
battleStatus->statusChance = 0;
}
battleStatus->statusDuration = (battleStatus->currentAttackStatus & 0xF00) >> 8;
temp_v0_2 = calc_player_test_enemy();
if (temp_v0_2 < 0) {
return ApiStatus_FINISH;
}
evt_set_variable(script, a0, temp_v0_2);
return ApiStatus_DONE2;
}
ApiStatus DispatchDamagePlayerEvent(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
@ -289,7 +733,7 @@ ApiStatus DidActionSucceed(Evt* script, s32 isInitialCall) {
}
ApiStatus func_80276EFC(Evt* script, s32 isInitialCall) {
gBattleStatus.flags1 |= 0x200000;
gBattleStatus.flags1 |= BS_FLAGS1_200000;
return ApiStatus_DONE2;
}

View File

@ -1,14 +1,121 @@
#include "common.h"
#include "effects_internal.h"
extern Gfx D_09000240[];
extern Gfx D_090002E8[];
Gfx* D_E00628C0[] = { D_090002E8 };
Gfx* D_E00628C4[] = { D_09000240 };
void debuff_init(EffectInstance* effect);
void debuff_update(EffectInstance* effect);
void debuff_render(EffectInstance* effect);
void debuff_appendGfx(void* effect);
INCLUDE_ASM(s32, "effects/debuff", debuff_main);
EffectInstance* debuff_main(s32 arg0, f32 x, f32 y, f32 z) {
EffectBlueprint bp;
EffectInstance* effect;
DebuffFXData* data;
s32 numParts = 8;
s32 i;
void debuff_init(void) {
bp.unk_00 = 0;
bp.init = debuff_init;
bp.update = debuff_update;
bp.renderWorld = debuff_render;
bp.unk_14 = NULL;
bp.effectID = EFFECT_DEBUFF;
effect = shim_create_effect_instance(&bp);
effect->numParts = numParts;
effect->data = data = shim_general_heap_malloc(numParts * sizeof(*data));
ASSERT(data != NULL);
shim_mem_clear(data, numParts * sizeof(*data));
data->unk_24 = 30;
data->unk_28 = 0;
data->unk_00 = arg0;
data->unk_04 = x;
data->unk_08 = y;
data->unk_0C = z;
data->unk_34 = 255;
if (arg0 == 0) {
data->unk_3B = 20;
data->unk_38 = 20;
data->unk_3C = 21;
data->unk_39 = 21;
data->unk_3D = 242;
data->unk_3A = 242;
} else {
data->unk_3B = 200;
data->unk_38 = 200;
data->unk_3C = 21;
data->unk_39 = 21;
data->unk_3D = 212;
data->unk_3A = 212;
}
data++;
for (i = 1; i < numParts; i++, data++) {
s32 temp = ((i - 1) * 360) / (numParts - 1);
f32 temp2 = 1.0f;
data->unk_04 = shim_cos_deg(temp + 90.0f);
data->unk_08 = shim_sin_deg(temp + 90.0f);
data->unk_0C = 0.0f;
data->unk_10 = 0.0f;
data->unk_14 = 0.0f;
data->unk_18 = 0.0f;
data->unk_1C = 0.1f;
data->unk_20 = 0.1f;
data->unk_30 = temp2;
data->unk_2C = temp;
}
return effect;
}
INCLUDE_ASM(s32, "effects/debuff", debuff_update);
void debuff_init(EffectInstance* effect) {
}
void debuff_update(EffectInstance* effect) {
DebuffFXData* data = effect->data;
s32 temp;
s32 i;
data->unk_28 += 1;
data->unk_24--;
if (data->unk_24 < 0) {
shim_remove_effect(effect);
return;
}
temp = data->unk_28;
if (temp >= 11) {
data->unk_34 *= 0.9;
}
data++;
for (i = 1; i < effect->numParts; i++, data++) {
if (temp > 10) {
data->unk_1C += (1.0 - data->unk_1C) * 0.1;
data->unk_20 += (2.4f - data->unk_20) * 0.1;
data->unk_30 += ((100.0f - data->unk_30) * 0.07) * 0.2;
}
if (temp < 10) {
data->unk_1C += (7.0f - data->unk_1C) * 0.05;
data->unk_20 += (1.0f - data->unk_20) * 0.1;
data->unk_30 += ((10.0f - data->unk_30) * 0.05) * 0.6;
}
data->unk_04 = shim_cos_deg(data->unk_2C + 90.0f) * data->unk_30;
data->unk_08 = shim_sin_deg(data->unk_2C + 90.0f) * data->unk_30;
}
}
void debuff_render(EffectInstance* effect) {
RenderTask renderTask;
@ -23,4 +130,45 @@ void debuff_render(EffectInstance* effect) {
retTask->renderMode |= RENDER_MODE_2;
}
INCLUDE_ASM(s32, "effects/debuff", debuff_appendGfx);
void debuff_appendGfx(void* effect) {
EffectInstance* eff = (EffectInstance*)effect;
DebuffFXData* data = eff->data;
Gfx* dlist = D_E00628C0[0];
Gfx* dlist2 = D_E00628C4[0];
Matrix4f sp18;
Matrix4f sp58;
Matrix4f sp98;
s32 i;
gDPPipeSync(gMasterGfxPos++);
gSPSegment(gMasterGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(eff->graphics->data));
gSPDisplayList(gMasterGfxPos++, dlist2);
shim_guTranslateF(sp18, data->unk_04, data->unk_08, data->unk_0C);
shim_guRotateF(sp58, -gCameras[gCurrentCameraID].currentYaw, 0.0f, 1.0f, 0.0f);
shim_guMtxCatF(sp58, sp18, sp98);
shim_guMtxF2L(sp98, &gDisplayContext->matrixStack[gMatrixListPos]);
gSPMatrix(gMasterGfxPos++,
&gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
gDPSetPrimColor(gMasterGfxPos++, 0, 0, data->unk_38, data->unk_39, data->unk_3A, data->unk_34);
gDPSetEnvColor(gMasterGfxPos++, data->unk_3B, data->unk_3C, data->unk_3D, 0);
data++;
for (i = 1; i < eff->numParts; i++, data++) {
shim_guTranslateF(sp18, data->unk_04, data->unk_08, data->unk_0C);
shim_guRotateF(sp58, data->unk_2C, 0.0f, 0.0f, 1.0f);
shim_guMtxCatF(sp58, sp18, sp18);
shim_guScaleF(sp58, data->unk_20, data->unk_1C, 1.0f);
shim_guMtxCatF(sp58, sp18, sp18);
shim_guMtxF2L(sp18, &gDisplayContext->matrixStack[gMatrixListPos]);
gSPMatrix(gMasterGfxPos++,
&gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
gSPDisplayList(gMasterGfxPos++, dlist);
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
}
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
gDPPipeSync(gMasterGfxPos++);
}

View File

@ -351,7 +351,7 @@ ApiStatus PlayEffect(Evt* script, s32 isInitialCall) {
effectRet = fx_lightning(iVar1, fVar2, fVar3, fVar4, fVar5, fVar6);
break;
case EFFECT_FIRE_BREATH:
effectRet = fx_fire_breath(iVar1, fVar2, fVar3, fVar4, fVar5, fVar6, fVar7, iVar8, iVar9, iVar10);
effectRet = fx_fire_breath(iVar1, fVar2, fVar3, fVar4, fVar5, fVar6, fVar7, iVar8, iVar9, iVar10);
break;
case EFFECT_SHIMMER_BURST:
fx_shimmer_burst(iVar1, fVar2, fVar3, fVar4, fVar5, iVar6);

View File

@ -1,27 +0,0 @@
.include "macro.inc"
.section .data
dlabel D_E00628C0
.word 0x090002E8
dlabel D_E00628C4
.word 0x09000240, 0x00000000, 0x00000000
dlabel D_E00628D0
.double 0.9
dlabel D_E00628D8
.double 0.1
dlabel D_E00628E0
.double 0.05
dlabel D_E00628E8
.double 0.07
dlabel D_E00628F0
.double 0.2
dlabel D_E00628F8
.double 0.6

View File

@ -1,164 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel PlayerDamageEnemy
/* 1A2B40 80274260 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 1A2B44 80274264 AFB20018 */ sw $s2, 0x18($sp)
/* 1A2B48 80274268 0080902D */ daddu $s2, $a0, $zero
/* 1A2B4C 8027426C AFBF0020 */ sw $ra, 0x20($sp)
/* 1A2B50 80274270 AFB3001C */ sw $s3, 0x1c($sp)
/* 1A2B54 80274274 AFB10014 */ sw $s1, 0x14($sp)
/* 1A2B58 80274278 AFB00010 */ sw $s0, 0x10($sp)
/* 1A2B5C 8027427C 8E50000C */ lw $s0, 0xc($s2)
/* 1A2B60 80274280 3C11800E */ lui $s1, %hi(gBattleStatus)
/* 1A2B64 80274284 2631C070 */ addiu $s1, $s1, %lo(gBattleStatus)
/* 1A2B68 80274288 8E130000 */ lw $s3, ($s0)
/* 1A2B6C 8027428C 26100004 */ addiu $s0, $s0, 4
/* 1A2B70 80274290 8E020000 */ lw $v0, ($s0)
/* 1A2B74 80274294 26100004 */ addiu $s0, $s0, 4
/* 1A2B78 80274298 AE220188 */ sw $v0, 0x188($s1)
/* 1A2B7C 8027429C 8E020000 */ lw $v0, ($s0)
/* 1A2B80 802742A0 26100004 */ addiu $s0, $s0, 4
/* 1A2B84 802742A4 AE22018C */ sw $v0, 0x18c($s1)
/* 1A2B88 802742A8 8E020000 */ lw $v0, ($s0)
/* 1A2B8C 802742AC 26100004 */ addiu $s0, $s0, 4
/* 1A2B90 802742B0 AE220190 */ sw $v0, 0x190($s1)
/* 1A2B94 802742B4 8E050000 */ lw $a1, ($s0)
/* 1A2B98 802742B8 0C0B1EAF */ jal evt_get_variable
/* 1A2B9C 802742BC 26100004 */ addiu $s0, $s0, 4
/* 1A2BA0 802742C0 A622017E */ sh $v0, 0x17e($s1)
/* 1A2BA4 802742C4 A2200198 */ sb $zero, 0x198($s1)
/* 1A2BA8 802742C8 8E100000 */ lw $s0, ($s0)
/* 1A2BAC 802742CC 24020030 */ addiu $v0, $zero, 0x30
/* 1A2BB0 802742D0 32030030 */ andi $v1, $s0, 0x30
/* 1A2BB4 802742D4 54620004 */ bnel $v1, $v0, .L802742E8
/* 1A2BB8 802742D8 32020010 */ andi $v0, $s0, 0x10
/* 1A2BBC 802742DC 8E220000 */ lw $v0, ($s1)
/* 1A2BC0 802742E0 0809D0CA */ j .L80274328
/* 1A2BC4 802742E4 34420030 */ ori $v0, $v0, 0x30
.L802742E8:
/* 1A2BC8 802742E8 10400004 */ beqz $v0, .L802742FC
/* 1A2BCC 802742EC 2403FFDF */ addiu $v1, $zero, -0x21
/* 1A2BD0 802742F0 8E220000 */ lw $v0, ($s1)
/* 1A2BD4 802742F4 0809D0C9 */ j .L80274324
/* 1A2BD8 802742F8 34420010 */ ori $v0, $v0, 0x10
.L802742FC:
/* 1A2BDC 802742FC 32020020 */ andi $v0, $s0, 0x20
/* 1A2BE0 80274300 10400005 */ beqz $v0, .L80274318
/* 1A2BE4 80274304 2403FFEF */ addiu $v1, $zero, -0x11
/* 1A2BE8 80274308 8E220000 */ lw $v0, ($s1)
/* 1A2BEC 8027430C 00431024 */ and $v0, $v0, $v1
/* 1A2BF0 80274310 0809D0CA */ j .L80274328
/* 1A2BF4 80274314 34420020 */ ori $v0, $v0, 0x20
.L80274318:
/* 1A2BF8 80274318 8E220000 */ lw $v0, ($s1)
/* 1A2BFC 8027431C 00431024 */ and $v0, $v0, $v1
/* 1A2C00 80274320 2403FFDF */ addiu $v1, $zero, -0x21
.L80274324:
/* 1A2C04 80274324 00431024 */ and $v0, $v0, $v1
.L80274328:
/* 1A2C08 80274328 AE220000 */ sw $v0, ($s1)
/* 1A2C0C 8027432C 32020040 */ andi $v0, $s0, 0x40
/* 1A2C10 80274330 10400007 */ beqz $v0, .L80274350
/* 1A2C14 80274334 2404FFBF */ addiu $a0, $zero, -0x41
/* 1A2C18 80274338 3C03800E */ lui $v1, %hi(gBattleStatus)
/* 1A2C1C 8027433C 2463C070 */ addiu $v1, $v1, %lo(gBattleStatus)
/* 1A2C20 80274340 8C620000 */ lw $v0, ($v1)
/* 1A2C24 80274344 34420040 */ ori $v0, $v0, 0x40
/* 1A2C28 80274348 0809D0D9 */ j .L80274364
/* 1A2C2C 8027434C AC620000 */ sw $v0, ($v1)
.L80274350:
/* 1A2C30 80274350 3C02800E */ lui $v0, %hi(gBattleStatus)
/* 1A2C34 80274354 2442C070 */ addiu $v0, $v0, %lo(gBattleStatus)
/* 1A2C38 80274358 8C430000 */ lw $v1, ($v0)
/* 1A2C3C 8027435C 00641824 */ and $v1, $v1, $a0
/* 1A2C40 80274360 AC430000 */ sw $v1, ($v0)
.L80274364:
/* 1A2C44 80274364 32020200 */ andi $v0, $s0, 0x200
/* 1A2C48 80274368 10400007 */ beqz $v0, .L80274388
/* 1A2C4C 8027436C 2404FDFF */ addiu $a0, $zero, -0x201
/* 1A2C50 80274370 3C03800E */ lui $v1, %hi(gBattleStatus)
/* 1A2C54 80274374 2463C070 */ addiu $v1, $v1, %lo(gBattleStatus)
/* 1A2C58 80274378 8C620000 */ lw $v0, ($v1)
/* 1A2C5C 8027437C 34420200 */ ori $v0, $v0, 0x200
/* 1A2C60 80274380 0809D0E7 */ j .L8027439C
/* 1A2C64 80274384 AC620000 */ sw $v0, ($v1)
.L80274388:
/* 1A2C68 80274388 3C02800E */ lui $v0, %hi(gBattleStatus)
/* 1A2C6C 8027438C 2442C070 */ addiu $v0, $v0, %lo(gBattleStatus)
/* 1A2C70 80274390 8C430000 */ lw $v1, ($v0)
/* 1A2C74 80274394 00641824 */ and $v1, $v1, $a0
/* 1A2C78 80274398 AC430000 */ sw $v1, ($v0)
.L8027439C:
/* 1A2C7C 8027439C 32020080 */ andi $v0, $s0, 0x80
/* 1A2C80 802743A0 10400007 */ beqz $v0, .L802743C0
/* 1A2C84 802743A4 2404FF7F */ addiu $a0, $zero, -0x81
/* 1A2C88 802743A8 3C03800E */ lui $v1, %hi(gBattleStatus)
/* 1A2C8C 802743AC 2463C070 */ addiu $v1, $v1, %lo(gBattleStatus)
/* 1A2C90 802743B0 8C620000 */ lw $v0, ($v1)
/* 1A2C94 802743B4 34420080 */ ori $v0, $v0, 0x80
/* 1A2C98 802743B8 0809D0F5 */ j .L802743D4
/* 1A2C9C 802743BC AC620000 */ sw $v0, ($v1)
.L802743C0:
/* 1A2CA0 802743C0 3C02800E */ lui $v0, %hi(gBattleStatus)
/* 1A2CA4 802743C4 2442C070 */ addiu $v0, $v0, %lo(gBattleStatus)
/* 1A2CA8 802743C8 8C430000 */ lw $v1, ($v0)
/* 1A2CAC 802743CC 00641824 */ and $v1, $v1, $a0
/* 1A2CB0 802743D0 AC430000 */ sw $v1, ($v0)
.L802743D4:
/* 1A2CB4 802743D4 32020800 */ andi $v0, $s0, 0x800
/* 1A2CB8 802743D8 10400007 */ beqz $v0, .L802743F8
/* 1A2CBC 802743DC 2404F7FF */ addiu $a0, $zero, -0x801
/* 1A2CC0 802743E0 3C03800E */ lui $v1, %hi(gBattleStatus)
/* 1A2CC4 802743E4 2463C070 */ addiu $v1, $v1, %lo(gBattleStatus)
/* 1A2CC8 802743E8 8C620000 */ lw $v0, ($v1)
/* 1A2CCC 802743EC 34420800 */ ori $v0, $v0, 0x800
/* 1A2CD0 802743F0 0809D103 */ j .L8027440C
/* 1A2CD4 802743F4 AC620000 */ sw $v0, ($v1)
.L802743F8:
/* 1A2CD8 802743F8 3C02800E */ lui $v0, %hi(gBattleStatus)
/* 1A2CDC 802743FC 2442C070 */ addiu $v0, $v0, %lo(gBattleStatus)
/* 1A2CE0 80274400 8C430000 */ lw $v1, ($v0)
/* 1A2CE4 80274404 00641824 */ and $v1, $v1, $a0
/* 1A2CE8 80274408 AC430000 */ sw $v1, ($v0)
.L8027440C:
/* 1A2CEC 8027440C 0C09A75B */ jal get_actor
/* 1A2CF0 80274410 8E440148 */ lw $a0, 0x148($s2)
/* 1A2CF4 80274414 94430428 */ lhu $v1, 0x428($v0)
/* 1A2CF8 80274418 A62301A0 */ sh $v1, 0x1a0($s1)
/* 1A2CFC 8027441C 92230193 */ lbu $v1, 0x193($s1)
/* 1A2D00 80274420 90420426 */ lbu $v0, 0x426($v0)
/* 1A2D04 80274424 A2230194 */ sb $v1, 0x194($s1)
/* 1A2D08 80274428 306300FF */ andi $v1, $v1, 0xff
/* 1A2D0C 8027442C A22201A2 */ sb $v0, 0x1a2($s1)
/* 1A2D10 80274430 240200FF */ addiu $v0, $zero, 0xff
/* 1A2D14 80274434 50620001 */ beql $v1, $v0, .L8027443C
/* 1A2D18 80274438 A2200194 */ sb $zero, 0x194($s1)
.L8027443C:
/* 1A2D1C 8027443C 8E220190 */ lw $v0, 0x190($s1)
/* 1A2D20 80274440 30420F00 */ andi $v0, $v0, 0xf00
/* 1A2D24 80274444 00021203 */ sra $v0, $v0, 8
/* 1A2D28 80274448 0C09C651 */ jal calc_player_damage_enemy
/* 1A2D2C 8027444C A2220195 */ sb $v0, 0x195($s1)
/* 1A2D30 80274450 0440000B */ bltz $v0, .L80274480
/* 1A2D34 80274454 0240202D */ daddu $a0, $s2, $zero
/* 1A2D38 80274458 0260282D */ daddu $a1, $s3, $zero
/* 1A2D3C 8027445C 0C0B2026 */ jal evt_set_variable
/* 1A2D40 80274460 0040302D */ daddu $a2, $v0, $zero
/* 1A2D44 80274464 0C0B1069 */ jal does_script_exist_by_ref
/* 1A2D48 80274468 0240202D */ daddu $a0, $s2, $zero
/* 1A2D4C 8027446C 0040182D */ daddu $v1, $v0, $zero
/* 1A2D50 80274470 10600004 */ beqz $v1, .L80274484
/* 1A2D54 80274474 240200FF */ addiu $v0, $zero, 0xff
/* 1A2D58 80274478 0809D121 */ j .L80274484
/* 1A2D5C 8027447C 24020002 */ addiu $v0, $zero, 2
.L80274480:
/* 1A2D60 80274480 240200FF */ addiu $v0, $zero, 0xff
.L80274484:
/* 1A2D64 80274484 8FBF0020 */ lw $ra, 0x20($sp)
/* 1A2D68 80274488 8FB3001C */ lw $s3, 0x1c($sp)
/* 1A2D6C 8027448C 8FB20018 */ lw $s2, 0x18($sp)
/* 1A2D70 80274490 8FB10014 */ lw $s1, 0x14($sp)
/* 1A2D74 80274494 8FB00010 */ lw $s0, 0x10($sp)
/* 1A2D78 80274498 03E00008 */ jr $ra
/* 1A2D7C 8027449C 27BD0028 */ addiu $sp, $sp, 0x28

View File

@ -1,168 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel PlayerPowerBounceEnemy
/* 1A2D80 802744A0 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 1A2D84 802744A4 AFB20018 */ sw $s2, 0x18($sp)
/* 1A2D88 802744A8 0080902D */ daddu $s2, $a0, $zero
/* 1A2D8C 802744AC AFBF0020 */ sw $ra, 0x20($sp)
/* 1A2D90 802744B0 AFB3001C */ sw $s3, 0x1c($sp)
/* 1A2D94 802744B4 AFB10014 */ sw $s1, 0x14($sp)
/* 1A2D98 802744B8 AFB00010 */ sw $s0, 0x10($sp)
/* 1A2D9C 802744BC 8E50000C */ lw $s0, 0xc($s2)
/* 1A2DA0 802744C0 3C11800E */ lui $s1, %hi(gBattleStatus)
/* 1A2DA4 802744C4 2631C070 */ addiu $s1, $s1, %lo(gBattleStatus)
/* 1A2DA8 802744C8 8E130000 */ lw $s3, ($s0)
/* 1A2DAC 802744CC 26100004 */ addiu $s0, $s0, 4
/* 1A2DB0 802744D0 8E020000 */ lw $v0, ($s0)
/* 1A2DB4 802744D4 26100004 */ addiu $s0, $s0, 4
/* 1A2DB8 802744D8 AE220188 */ sw $v0, 0x188($s1)
/* 1A2DBC 802744DC 8E020000 */ lw $v0, ($s0)
/* 1A2DC0 802744E0 26100004 */ addiu $s0, $s0, 4
/* 1A2DC4 802744E4 AE22018C */ sw $v0, 0x18c($s1)
/* 1A2DC8 802744E8 8E020000 */ lw $v0, ($s0)
/* 1A2DCC 802744EC 26100004 */ addiu $s0, $s0, 4
/* 1A2DD0 802744F0 AE220190 */ sw $v0, 0x190($s1)
/* 1A2DD4 802744F4 8E050000 */ lw $a1, ($s0)
/* 1A2DD8 802744F8 0C0B1EAF */ jal evt_get_variable
/* 1A2DDC 802744FC 26100004 */ addiu $s0, $s0, 4
/* 1A2DE0 80274500 A622017E */ sh $v0, 0x17e($s1)
/* 1A2DE4 80274504 8E050000 */ lw $a1, ($s0)
/* 1A2DE8 80274508 26100004 */ addiu $s0, $s0, 4
/* 1A2DEC 8027450C 0C0B1EAF */ jal evt_get_variable
/* 1A2DF0 80274510 0240202D */ daddu $a0, $s2, $zero
/* 1A2DF4 80274514 A2220198 */ sb $v0, 0x198($s1)
/* 1A2DF8 80274518 8E100000 */ lw $s0, ($s0)
/* 1A2DFC 8027451C 24020030 */ addiu $v0, $zero, 0x30
/* 1A2E00 80274520 32030030 */ andi $v1, $s0, 0x30
/* 1A2E04 80274524 54620004 */ bnel $v1, $v0, .L80274538
/* 1A2E08 80274528 32020010 */ andi $v0, $s0, 0x10
/* 1A2E0C 8027452C 8E220000 */ lw $v0, ($s1)
/* 1A2E10 80274530 0809D15E */ j .L80274578
/* 1A2E14 80274534 34420030 */ ori $v0, $v0, 0x30
.L80274538:
/* 1A2E18 80274538 10400004 */ beqz $v0, .L8027454C
/* 1A2E1C 8027453C 2403FFDF */ addiu $v1, $zero, -0x21
/* 1A2E20 80274540 8E220000 */ lw $v0, ($s1)
/* 1A2E24 80274544 0809D15D */ j .L80274574
/* 1A2E28 80274548 34420010 */ ori $v0, $v0, 0x10
.L8027454C:
/* 1A2E2C 8027454C 32020020 */ andi $v0, $s0, 0x20
/* 1A2E30 80274550 10400005 */ beqz $v0, .L80274568
/* 1A2E34 80274554 2403FFEF */ addiu $v1, $zero, -0x11
/* 1A2E38 80274558 8E220000 */ lw $v0, ($s1)
/* 1A2E3C 8027455C 00431024 */ and $v0, $v0, $v1
/* 1A2E40 80274560 0809D15E */ j .L80274578
/* 1A2E44 80274564 34420020 */ ori $v0, $v0, 0x20
.L80274568:
/* 1A2E48 80274568 8E220000 */ lw $v0, ($s1)
/* 1A2E4C 8027456C 00431024 */ and $v0, $v0, $v1
/* 1A2E50 80274570 2403FFDF */ addiu $v1, $zero, -0x21
.L80274574:
/* 1A2E54 80274574 00431024 */ and $v0, $v0, $v1
.L80274578:
/* 1A2E58 80274578 AE220000 */ sw $v0, ($s1)
/* 1A2E5C 8027457C 32020040 */ andi $v0, $s0, 0x40
/* 1A2E60 80274580 10400007 */ beqz $v0, .L802745A0
/* 1A2E64 80274584 2404FFBF */ addiu $a0, $zero, -0x41
/* 1A2E68 80274588 3C03800E */ lui $v1, %hi(gBattleStatus)
/* 1A2E6C 8027458C 2463C070 */ addiu $v1, $v1, %lo(gBattleStatus)
/* 1A2E70 80274590 8C620000 */ lw $v0, ($v1)
/* 1A2E74 80274594 34420040 */ ori $v0, $v0, 0x40
/* 1A2E78 80274598 0809D16D */ j .L802745B4
/* 1A2E7C 8027459C AC620000 */ sw $v0, ($v1)
.L802745A0:
/* 1A2E80 802745A0 3C02800E */ lui $v0, %hi(gBattleStatus)
/* 1A2E84 802745A4 2442C070 */ addiu $v0, $v0, %lo(gBattleStatus)
/* 1A2E88 802745A8 8C430000 */ lw $v1, ($v0)
/* 1A2E8C 802745AC 00641824 */ and $v1, $v1, $a0
/* 1A2E90 802745B0 AC430000 */ sw $v1, ($v0)
.L802745B4:
/* 1A2E94 802745B4 32020200 */ andi $v0, $s0, 0x200
/* 1A2E98 802745B8 10400007 */ beqz $v0, .L802745D8
/* 1A2E9C 802745BC 2404FDFF */ addiu $a0, $zero, -0x201
/* 1A2EA0 802745C0 3C03800E */ lui $v1, %hi(gBattleStatus)
/* 1A2EA4 802745C4 2463C070 */ addiu $v1, $v1, %lo(gBattleStatus)
/* 1A2EA8 802745C8 8C620000 */ lw $v0, ($v1)
/* 1A2EAC 802745CC 34420200 */ ori $v0, $v0, 0x200
/* 1A2EB0 802745D0 0809D17B */ j .L802745EC
/* 1A2EB4 802745D4 AC620000 */ sw $v0, ($v1)
.L802745D8:
/* 1A2EB8 802745D8 3C02800E */ lui $v0, %hi(gBattleStatus)
/* 1A2EBC 802745DC 2442C070 */ addiu $v0, $v0, %lo(gBattleStatus)
/* 1A2EC0 802745E0 8C430000 */ lw $v1, ($v0)
/* 1A2EC4 802745E4 00641824 */ and $v1, $v1, $a0
/* 1A2EC8 802745E8 AC430000 */ sw $v1, ($v0)
.L802745EC:
/* 1A2ECC 802745EC 32020080 */ andi $v0, $s0, 0x80
/* 1A2ED0 802745F0 10400007 */ beqz $v0, .L80274610
/* 1A2ED4 802745F4 2404FF7F */ addiu $a0, $zero, -0x81
/* 1A2ED8 802745F8 3C03800E */ lui $v1, %hi(gBattleStatus)
/* 1A2EDC 802745FC 2463C070 */ addiu $v1, $v1, %lo(gBattleStatus)
/* 1A2EE0 80274600 8C620000 */ lw $v0, ($v1)
/* 1A2EE4 80274604 34420080 */ ori $v0, $v0, 0x80
/* 1A2EE8 80274608 0809D189 */ j .L80274624
/* 1A2EEC 8027460C AC620000 */ sw $v0, ($v1)
.L80274610:
/* 1A2EF0 80274610 3C02800E */ lui $v0, %hi(gBattleStatus)
/* 1A2EF4 80274614 2442C070 */ addiu $v0, $v0, %lo(gBattleStatus)
/* 1A2EF8 80274618 8C430000 */ lw $v1, ($v0)
/* 1A2EFC 8027461C 00641824 */ and $v1, $v1, $a0
/* 1A2F00 80274620 AC430000 */ sw $v1, ($v0)
.L80274624:
/* 1A2F04 80274624 32020800 */ andi $v0, $s0, 0x800
/* 1A2F08 80274628 10400007 */ beqz $v0, .L80274648
/* 1A2F0C 8027462C 2404F7FF */ addiu $a0, $zero, -0x801
/* 1A2F10 80274630 3C03800E */ lui $v1, %hi(gBattleStatus)
/* 1A2F14 80274634 2463C070 */ addiu $v1, $v1, %lo(gBattleStatus)
/* 1A2F18 80274638 8C620000 */ lw $v0, ($v1)
/* 1A2F1C 8027463C 34420800 */ ori $v0, $v0, 0x800
/* 1A2F20 80274640 0809D197 */ j .L8027465C
/* 1A2F24 80274644 AC620000 */ sw $v0, ($v1)
.L80274648:
/* 1A2F28 80274648 3C02800E */ lui $v0, %hi(gBattleStatus)
/* 1A2F2C 8027464C 2442C070 */ addiu $v0, $v0, %lo(gBattleStatus)
/* 1A2F30 80274650 8C430000 */ lw $v1, ($v0)
/* 1A2F34 80274654 00641824 */ and $v1, $v1, $a0
/* 1A2F38 80274658 AC430000 */ sw $v1, ($v0)
.L8027465C:
/* 1A2F3C 8027465C 0C09A75B */ jal get_actor
/* 1A2F40 80274660 8E440148 */ lw $a0, 0x148($s2)
/* 1A2F44 80274664 94430428 */ lhu $v1, 0x428($v0)
/* 1A2F48 80274668 A62301A0 */ sh $v1, 0x1a0($s1)
/* 1A2F4C 8027466C 92230193 */ lbu $v1, 0x193($s1)
/* 1A2F50 80274670 90420426 */ lbu $v0, 0x426($v0)
/* 1A2F54 80274674 A2230194 */ sb $v1, 0x194($s1)
/* 1A2F58 80274678 306300FF */ andi $v1, $v1, 0xff
/* 1A2F5C 8027467C A22201A2 */ sb $v0, 0x1a2($s1)
/* 1A2F60 80274680 240200FF */ addiu $v0, $zero, 0xff
/* 1A2F64 80274684 50620001 */ beql $v1, $v0, .L8027468C
/* 1A2F68 80274688 A2200194 */ sb $zero, 0x194($s1)
.L8027468C:
/* 1A2F6C 8027468C 8E220190 */ lw $v0, 0x190($s1)
/* 1A2F70 80274690 30420F00 */ andi $v0, $v0, 0xf00
/* 1A2F74 80274694 00021203 */ sra $v0, $v0, 8
/* 1A2F78 80274698 0C09C651 */ jal calc_player_damage_enemy
/* 1A2F7C 8027469C A2220195 */ sb $v0, 0x195($s1)
/* 1A2F80 802746A0 0440000B */ bltz $v0, .L802746D0
/* 1A2F84 802746A4 0240202D */ daddu $a0, $s2, $zero
/* 1A2F88 802746A8 0260282D */ daddu $a1, $s3, $zero
/* 1A2F8C 802746AC 0C0B2026 */ jal evt_set_variable
/* 1A2F90 802746B0 0040302D */ daddu $a2, $v0, $zero
/* 1A2F94 802746B4 0C0B1069 */ jal does_script_exist_by_ref
/* 1A2F98 802746B8 0240202D */ daddu $a0, $s2, $zero
/* 1A2F9C 802746BC 0040182D */ daddu $v1, $v0, $zero
/* 1A2FA0 802746C0 10600004 */ beqz $v1, .L802746D4
/* 1A2FA4 802746C4 240200FF */ addiu $v0, $zero, 0xff
/* 1A2FA8 802746C8 0809D1B5 */ j .L802746D4
/* 1A2FAC 802746CC 24020002 */ addiu $v0, $zero, 2
.L802746D0:
/* 1A2FB0 802746D0 240200FF */ addiu $v0, $zero, 0xff
.L802746D4:
/* 1A2FB4 802746D4 8FBF0020 */ lw $ra, 0x20($sp)
/* 1A2FB8 802746D8 8FB3001C */ lw $s3, 0x1c($sp)
/* 1A2FBC 802746DC 8FB20018 */ lw $s2, 0x18($sp)
/* 1A2FC0 802746E0 8FB10014 */ lw $s1, 0x14($sp)
/* 1A2FC4 802746E4 8FB00010 */ lw $s0, 0x10($sp)
/* 1A2FC8 802746E8 03E00008 */ jr $ra
/* 1A2FCC 802746EC 27BD0028 */ addiu $sp, $sp, 0x28

View File

@ -1,159 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel PlayerTestEnemy
/* 1A2FD0 802746F0 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 1A2FD4 802746F4 AFB20018 */ sw $s2, 0x18($sp)
/* 1A2FD8 802746F8 0080902D */ daddu $s2, $a0, $zero
/* 1A2FDC 802746FC AFBF0020 */ sw $ra, 0x20($sp)
/* 1A2FE0 80274700 AFB3001C */ sw $s3, 0x1c($sp)
/* 1A2FE4 80274704 AFB10014 */ sw $s1, 0x14($sp)
/* 1A2FE8 80274708 AFB00010 */ sw $s0, 0x10($sp)
/* 1A2FEC 8027470C 8E50000C */ lw $s0, 0xc($s2)
/* 1A2FF0 80274710 3C11800E */ lui $s1, %hi(gBattleStatus)
/* 1A2FF4 80274714 2631C070 */ addiu $s1, $s1, %lo(gBattleStatus)
/* 1A2FF8 80274718 8E130000 */ lw $s3, ($s0)
/* 1A2FFC 8027471C 26100004 */ addiu $s0, $s0, 4
/* 1A3000 80274720 8E020000 */ lw $v0, ($s0)
/* 1A3004 80274724 26100004 */ addiu $s0, $s0, 4
/* 1A3008 80274728 AE220188 */ sw $v0, 0x188($s1)
/* 1A300C 8027472C 8E020000 */ lw $v0, ($s0)
/* 1A3010 80274730 26100004 */ addiu $s0, $s0, 4
/* 1A3014 80274734 AE22018C */ sw $v0, 0x18c($s1)
/* 1A3018 80274738 8E020000 */ lw $v0, ($s0)
/* 1A301C 8027473C 26100004 */ addiu $s0, $s0, 4
/* 1A3020 80274740 AE220190 */ sw $v0, 0x190($s1)
/* 1A3024 80274744 8E050000 */ lw $a1, ($s0)
/* 1A3028 80274748 0C0B1EAF */ jal evt_get_variable
/* 1A302C 8027474C 26100004 */ addiu $s0, $s0, 4
/* 1A3030 80274750 A622017E */ sh $v0, 0x17e($s1)
/* 1A3034 80274754 A2200198 */ sb $zero, 0x198($s1)
/* 1A3038 80274758 8E100000 */ lw $s0, ($s0)
/* 1A303C 8027475C 24020030 */ addiu $v0, $zero, 0x30
/* 1A3040 80274760 32030030 */ andi $v1, $s0, 0x30
/* 1A3044 80274764 54620004 */ bnel $v1, $v0, .L80274778
/* 1A3048 80274768 32020010 */ andi $v0, $s0, 0x10
/* 1A304C 8027476C 8E220000 */ lw $v0, ($s1)
/* 1A3050 80274770 0809D1EE */ j .L802747B8
/* 1A3054 80274774 34420030 */ ori $v0, $v0, 0x30
.L80274778:
/* 1A3058 80274778 10400004 */ beqz $v0, .L8027478C
/* 1A305C 8027477C 2403FFDF */ addiu $v1, $zero, -0x21
/* 1A3060 80274780 8E220000 */ lw $v0, ($s1)
/* 1A3064 80274784 0809D1ED */ j .L802747B4
/* 1A3068 80274788 34420010 */ ori $v0, $v0, 0x10
.L8027478C:
/* 1A306C 8027478C 32020020 */ andi $v0, $s0, 0x20
/* 1A3070 80274790 10400005 */ beqz $v0, .L802747A8
/* 1A3074 80274794 2403FFEF */ addiu $v1, $zero, -0x11
/* 1A3078 80274798 8E220000 */ lw $v0, ($s1)
/* 1A307C 8027479C 00431024 */ and $v0, $v0, $v1
/* 1A3080 802747A0 0809D1EE */ j .L802747B8
/* 1A3084 802747A4 34420020 */ ori $v0, $v0, 0x20
.L802747A8:
/* 1A3088 802747A8 8E220000 */ lw $v0, ($s1)
/* 1A308C 802747AC 00431024 */ and $v0, $v0, $v1
/* 1A3090 802747B0 2403FFDF */ addiu $v1, $zero, -0x21
.L802747B4:
/* 1A3094 802747B4 00431024 */ and $v0, $v0, $v1
.L802747B8:
/* 1A3098 802747B8 AE220000 */ sw $v0, ($s1)
/* 1A309C 802747BC 32020040 */ andi $v0, $s0, 0x40
/* 1A30A0 802747C0 10400007 */ beqz $v0, .L802747E0
/* 1A30A4 802747C4 2404FFBF */ addiu $a0, $zero, -0x41
/* 1A30A8 802747C8 3C03800E */ lui $v1, %hi(gBattleStatus)
/* 1A30AC 802747CC 2463C070 */ addiu $v1, $v1, %lo(gBattleStatus)
/* 1A30B0 802747D0 8C620000 */ lw $v0, ($v1)
/* 1A30B4 802747D4 34420040 */ ori $v0, $v0, 0x40
/* 1A30B8 802747D8 0809D1FD */ j .L802747F4
/* 1A30BC 802747DC AC620000 */ sw $v0, ($v1)
.L802747E0:
/* 1A30C0 802747E0 3C02800E */ lui $v0, %hi(gBattleStatus)
/* 1A30C4 802747E4 2442C070 */ addiu $v0, $v0, %lo(gBattleStatus)
/* 1A30C8 802747E8 8C430000 */ lw $v1, ($v0)
/* 1A30CC 802747EC 00641824 */ and $v1, $v1, $a0
/* 1A30D0 802747F0 AC430000 */ sw $v1, ($v0)
.L802747F4:
/* 1A30D4 802747F4 32020200 */ andi $v0, $s0, 0x200
/* 1A30D8 802747F8 10400007 */ beqz $v0, .L80274818
/* 1A30DC 802747FC 2404FDFF */ addiu $a0, $zero, -0x201
/* 1A30E0 80274800 3C03800E */ lui $v1, %hi(gBattleStatus)
/* 1A30E4 80274804 2463C070 */ addiu $v1, $v1, %lo(gBattleStatus)
/* 1A30E8 80274808 8C620000 */ lw $v0, ($v1)
/* 1A30EC 8027480C 34420200 */ ori $v0, $v0, 0x200
/* 1A30F0 80274810 0809D20B */ j .L8027482C
/* 1A30F4 80274814 AC620000 */ sw $v0, ($v1)
.L80274818:
/* 1A30F8 80274818 3C02800E */ lui $v0, %hi(gBattleStatus)
/* 1A30FC 8027481C 2442C070 */ addiu $v0, $v0, %lo(gBattleStatus)
/* 1A3100 80274820 8C430000 */ lw $v1, ($v0)
/* 1A3104 80274824 00641824 */ and $v1, $v1, $a0
/* 1A3108 80274828 AC430000 */ sw $v1, ($v0)
.L8027482C:
/* 1A310C 8027482C 32020080 */ andi $v0, $s0, 0x80
/* 1A3110 80274830 10400007 */ beqz $v0, .L80274850
/* 1A3114 80274834 2404FF7F */ addiu $a0, $zero, -0x81
/* 1A3118 80274838 3C03800E */ lui $v1, %hi(gBattleStatus)
/* 1A311C 8027483C 2463C070 */ addiu $v1, $v1, %lo(gBattleStatus)
/* 1A3120 80274840 8C620000 */ lw $v0, ($v1)
/* 1A3124 80274844 34420080 */ ori $v0, $v0, 0x80
/* 1A3128 80274848 0809D219 */ j .L80274864
/* 1A312C 8027484C AC620000 */ sw $v0, ($v1)
.L80274850:
/* 1A3130 80274850 3C02800E */ lui $v0, %hi(gBattleStatus)
/* 1A3134 80274854 2442C070 */ addiu $v0, $v0, %lo(gBattleStatus)
/* 1A3138 80274858 8C430000 */ lw $v1, ($v0)
/* 1A313C 8027485C 00641824 */ and $v1, $v1, $a0
/* 1A3140 80274860 AC430000 */ sw $v1, ($v0)
.L80274864:
/* 1A3144 80274864 32020800 */ andi $v0, $s0, 0x800
/* 1A3148 80274868 10400007 */ beqz $v0, .L80274888
/* 1A314C 8027486C 2404F7FF */ addiu $a0, $zero, -0x801
/* 1A3150 80274870 3C03800E */ lui $v1, %hi(gBattleStatus)
/* 1A3154 80274874 2463C070 */ addiu $v1, $v1, %lo(gBattleStatus)
/* 1A3158 80274878 8C620000 */ lw $v0, ($v1)
/* 1A315C 8027487C 34420800 */ ori $v0, $v0, 0x800
/* 1A3160 80274880 0809D227 */ j .L8027489C
/* 1A3164 80274884 AC620000 */ sw $v0, ($v1)
.L80274888:
/* 1A3168 80274888 3C02800E */ lui $v0, %hi(gBattleStatus)
/* 1A316C 8027488C 2442C070 */ addiu $v0, $v0, %lo(gBattleStatus)
/* 1A3170 80274890 8C430000 */ lw $v1, ($v0)
/* 1A3174 80274894 00641824 */ and $v1, $v1, $a0
/* 1A3178 80274898 AC430000 */ sw $v1, ($v0)
.L8027489C:
/* 1A317C 8027489C 0C09A75B */ jal get_actor
/* 1A3180 802748A0 8E440148 */ lw $a0, 0x148($s2)
/* 1A3184 802748A4 94430428 */ lhu $v1, 0x428($v0)
/* 1A3188 802748A8 A62301A0 */ sh $v1, 0x1a0($s1)
/* 1A318C 802748AC 92230193 */ lbu $v1, 0x193($s1)
/* 1A3190 802748B0 90420426 */ lbu $v0, 0x426($v0)
/* 1A3194 802748B4 A2230194 */ sb $v1, 0x194($s1)
/* 1A3198 802748B8 306300FF */ andi $v1, $v1, 0xff
/* 1A319C 802748BC A22201A2 */ sb $v0, 0x1a2($s1)
/* 1A31A0 802748C0 240200FF */ addiu $v0, $zero, 0xff
/* 1A31A4 802748C4 50620001 */ beql $v1, $v0, .L802748CC
/* 1A31A8 802748C8 A2200194 */ sb $zero, 0x194($s1)
.L802748CC:
/* 1A31AC 802748CC 8E220190 */ lw $v0, 0x190($s1)
/* 1A31B0 802748D0 30420F00 */ andi $v0, $v0, 0xf00
/* 1A31B4 802748D4 00021203 */ sra $v0, $v0, 8
/* 1A31B8 802748D8 0C09C5D5 */ jal calc_player_test_enemy
/* 1A31BC 802748DC A2220195 */ sb $v0, 0x195($s1)
/* 1A31C0 802748E0 04400006 */ bltz $v0, .L802748FC
/* 1A31C4 802748E4 0240202D */ daddu $a0, $s2, $zero
/* 1A31C8 802748E8 0260282D */ daddu $a1, $s3, $zero
/* 1A31CC 802748EC 0C0B2026 */ jal evt_set_variable
/* 1A31D0 802748F0 0040302D */ daddu $a2, $v0, $zero
/* 1A31D4 802748F4 0809D240 */ j .L80274900
/* 1A31D8 802748F8 24020002 */ addiu $v0, $zero, 2
.L802748FC:
/* 1A31DC 802748FC 240200FF */ addiu $v0, $zero, 0xff
.L80274900:
/* 1A31E0 80274900 8FBF0020 */ lw $ra, 0x20($sp)
/* 1A31E4 80274904 8FB3001C */ lw $s3, 0x1c($sp)
/* 1A31E8 80274908 8FB20018 */ lw $s2, 0x18($sp)
/* 1A31EC 8027490C 8FB10014 */ lw $s1, 0x14($sp)
/* 1A31F0 80274910 8FB00010 */ lw $s0, 0x10($sp)
/* 1A31F4 80274914 03E00008 */ jr $ra
/* 1A31F8 80274918 27BD0028 */ addiu $sp, $sp, 0x28

View File

@ -1,137 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel calc_player_test_enemy
/* 1A0034 80271754 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 1A0038 80271758 AFB20020 */ sw $s2, 0x20($sp)
/* 1A003C 8027175C 3C12800E */ lui $s2, %hi(gBattleStatus)
/* 1A0040 80271760 2652C070 */ addiu $s2, $s2, %lo(gBattleStatus)
/* 1A0044 80271764 AFBF002C */ sw $ra, 0x2c($sp)
/* 1A0048 80271768 AFB40028 */ sw $s4, 0x28($sp)
/* 1A004C 8027176C AFB30024 */ sw $s3, 0x24($sp)
/* 1A0050 80271770 AFB1001C */ sw $s1, 0x1c($sp)
/* 1A0054 80271774 AFB00018 */ sw $s0, 0x18($sp)
/* 1A0058 80271778 964201A0 */ lhu $v0, 0x1a0($s2)
/* 1A005C 8027177C 864401A0 */ lh $a0, 0x1a0($s2)
/* 1A0060 80271780 924301A2 */ lbu $v1, 0x1a2($s2)
/* 1A0064 80271784 8E5400D8 */ lw $s4, 0xd8($s2)
/* 1A0068 80271788 825101A2 */ lb $s1, 0x1a2($s2)
/* 1A006C 8027178C A64201A4 */ sh $v0, 0x1a4($s2)
/* 1A0070 80271790 0C09A75B */ jal get_actor
/* 1A0074 80271794 A24301A6 */ sb $v1, 0x1a6($s2)
/* 1A0078 80271798 0040982D */ daddu $s3, $v0, $zero
/* 1A007C 8027179C 12600060 */ beqz $s3, .L80271920
/* 1A0080 802717A0 2690000C */ addiu $s0, $s4, 0xc
/* 1A0084 802717A4 0260202D */ daddu $a0, $s3, $zero
/* 1A0088 802717A8 0C099117 */ jal get_actor_part
/* 1A008C 802717AC 0220282D */ daddu $a1, $s1, $zero
/* 1A0090 802717B0 0040882D */ daddu $s1, $v0, $zero
/* 1A0094 802717B4 16200003 */ bnez $s1, .L802717C4
/* 1A0098 802717B8 00000000 */ nop
.L802717BC:
/* 1A009C 802717BC 0809C5EF */ j .L802717BC
/* 1A00A0 802717C0 00000000 */ nop
.L802717C4:
/* 1A00A4 802717C4 8E24007C */ lw $a0, 0x7c($s1)
/* 1A00A8 802717C8 30820020 */ andi $v0, $a0, 0x20
/* 1A00AC 802717CC 14400055 */ bnez $v0, .L80271924
/* 1A00B0 802717D0 24020006 */ addiu $v0, $zero, 6
/* 1A00B4 802717D4 82630218 */ lb $v1, 0x218($s3)
/* 1A00B8 802717D8 2402000E */ addiu $v0, $zero, 0xe
/* 1A00BC 802717DC 10620007 */ beq $v1, $v0, .L802717FC
/* 1A00C0 802717E0 30820800 */ andi $v0, $a0, 0x800
/* 1A00C4 802717E4 10400007 */ beqz $v0, .L80271804
/* 1A00C8 802717E8 00000000 */ nop
/* 1A00CC 802717EC 8E420188 */ lw $v0, 0x188($s2)
/* 1A00D0 802717F0 30420800 */ andi $v0, $v0, 0x800
/* 1A00D4 802717F4 14400003 */ bnez $v0, .L80271804
/* 1A00D8 802717F8 00000000 */ nop
.L802717FC:
/* 1A00DC 802717FC 0809C649 */ j .L80271924
/* 1A00E0 80271800 24020006 */ addiu $v0, $zero, 6
.L80271804:
/* 1A00E4 80271804 82630214 */ lb $v1, 0x214($s3)
/* 1A00E8 80271808 2402000C */ addiu $v0, $zero, 0xc
/* 1A00EC 8027180C 14620009 */ bne $v1, $v0, .L80271834
/* 1A00F0 80271810 2404010C */ addiu $a0, $zero, 0x10c
/* 1A00F4 80271814 C6000014 */ lwc1 $f0, 0x14($s0)
/* 1A00F8 80271818 E7A00010 */ swc1 $f0, 0x10($sp)
/* 1A00FC 8027181C 8E06000C */ lw $a2, 0xc($s0)
/* 1A0100 80271820 8E070010 */ lw $a3, 0x10($s0)
/* 1A0104 80271824 0C052757 */ jal sfx_play_sound_at_position
/* 1A0108 80271828 0000282D */ daddu $a1, $zero, $zero
/* 1A010C 8027182C 0809C649 */ j .L80271924
/* 1A0110 80271830 24020008 */ addiu $v0, $zero, 8
.L80271834:
/* 1A0114 80271834 8E420188 */ lw $v0, 0x188($s2)
/* 1A0118 80271838 30420080 */ andi $v0, $v0, 0x80
/* 1A011C 8027183C 10400012 */ beqz $v0, .L80271888
/* 1A0120 80271840 3C031000 */ lui $v1, 0x1000
/* 1A0124 80271844 8E22007C */ lw $v0, 0x7c($s1)
/* 1A0128 80271848 30420010 */ andi $v0, $v0, 0x10
/* 1A012C 8027184C 1040000E */ beqz $v0, .L80271888
/* 1A0130 80271850 0280202D */ daddu $a0, $s4, $zero
/* 1A0134 80271854 0C099CAB */ jal player_team_is_ability_active
/* 1A0138 80271858 24050002 */ addiu $a1, $zero, 2
/* 1A013C 8027185C 1440000A */ bnez $v0, .L80271888
/* 1A0140 80271860 3C031000 */ lui $v1, 0x1000
/* 1A0144 80271864 C6000014 */ lwc1 $f0, 0x14($s0)
/* 1A0148 80271868 24040108 */ addiu $a0, $zero, 0x108
/* 1A014C 8027186C E7A00010 */ swc1 $f0, 0x10($sp)
/* 1A0150 80271870 8E06000C */ lw $a2, 0xc($s0)
/* 1A0154 80271874 8E070010 */ lw $a3, 0x10($s0)
/* 1A0158 80271878 0C052757 */ jal sfx_play_sound_at_position
/* 1A015C 8027187C 0000282D */ daddu $a1, $zero, $zero
/* 1A0160 80271880 0809C649 */ j .L80271924
/* 1A0164 80271884 24020004 */ addiu $v0, $zero, 4
.L80271888:
/* 1A0168 80271888 8E420188 */ lw $v0, 0x188($s2)
/* 1A016C 8027188C 34630080 */ ori $v1, $v1, 0x80
/* 1A0170 80271890 00431024 */ and $v0, $v0, $v1
/* 1A0174 80271894 1440001B */ bnez $v0, .L80271904
/* 1A0178 80271898 3C030001 */ lui $v1, 1
/* 1A017C 8027189C 8E22007C */ lw $v0, 0x7c($s1)
/* 1A0180 802718A0 00431024 */ and $v0, $v0, $v1
/* 1A0184 802718A4 10400017 */ beqz $v0, .L80271904
/* 1A0188 802718A8 00000000 */ nop
/* 1A018C 802718AC 8E42018C */ lw $v0, 0x18c($s2)
/* 1A0190 802718B0 30420004 */ andi $v0, $v0, 4
/* 1A0194 802718B4 14400013 */ bnez $v0, .L80271904
/* 1A0198 802718B8 0280202D */ daddu $a0, $s4, $zero
/* 1A019C 802718BC 0C099CAB */ jal player_team_is_ability_active
/* 1A01A0 802718C0 24050002 */ addiu $a1, $zero, 2
/* 1A01A4 802718C4 1440000F */ bnez $v0, .L80271904
/* 1A01A8 802718C8 24040108 */ addiu $a0, $zero, 0x108
/* 1A01AC 802718CC C6000014 */ lwc1 $f0, 0x14($s0)
/* 1A01B0 802718D0 E7A00010 */ swc1 $f0, 0x10($sp)
/* 1A01B4 802718D4 8E06000C */ lw $a2, 0xc($s0)
/* 1A01B8 802718D8 8E070010 */ lw $a3, 0x10($s0)
/* 1A01BC 802718DC 0C052757 */ jal sfx_play_sound_at_position
/* 1A01C0 802718E0 0000282D */ daddu $a1, $zero, $zero
/* 1A01C4 802718E4 24040001 */ addiu $a0, $zero, 1
/* 1A01C8 802718E8 0C09CCEA */ jal dispatch_damage_event_player_1
/* 1A01CC 802718EC 2405002A */ addiu $a1, $zero, 0x2a
/* 1A01D0 802718F0 0260202D */ daddu $a0, $s3, $zero
/* 1A01D4 802718F4 0C09DC58 */ jal dispatch_event_actor
/* 1A01D8 802718F8 2405001B */ addiu $a1, $zero, 0x1b
/* 1A01DC 802718FC 0809C649 */ j .L80271924
/* 1A01E0 80271900 2402FFFF */ addiu $v0, $zero, -1
.L80271904:
/* 1A01E4 80271904 82820212 */ lb $v0, 0x212($s4)
/* 1A01E8 80271908 2404000B */ addiu $a0, $zero, 0xb
/* 1A01EC 8027190C 10440005 */ beq $v0, $a0, .L80271924
/* 1A01F0 80271910 0000102D */ daddu $v0, $zero, $zero
/* 1A01F4 80271914 82630212 */ lb $v1, 0x212($s3)
/* 1A01F8 80271918 10640002 */ beq $v1, $a0, .L80271924
/* 1A01FC 8027191C 24020007 */ addiu $v0, $zero, 7
.L80271920:
/* 1A0200 80271920 0000102D */ daddu $v0, $zero, $zero
.L80271924:
/* 1A0204 80271924 8FBF002C */ lw $ra, 0x2c($sp)
/* 1A0208 80271928 8FB40028 */ lw $s4, 0x28($sp)
/* 1A020C 8027192C 8FB30024 */ lw $s3, 0x24($sp)
/* 1A0210 80271930 8FB20020 */ lw $s2, 0x20($sp)
/* 1A0214 80271934 8FB1001C */ lw $s1, 0x1c($sp)
/* 1A0218 80271938 8FB00018 */ lw $s0, 0x18($sp)
/* 1A021C 8027193C 03E00008 */ jr $ra
/* 1A0220 80271940 27BD0030 */ addiu $sp, $sp, 0x30

View File

@ -1,124 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel dispatch_damage_event_player
/* 1A1A9C 802731BC 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 1A1AA0 802731C0 00A0402D */ daddu $t0, $a1, $zero
/* 1A1AA4 802731C4 AFB30024 */ sw $s3, 0x24($sp)
/* 1A1AA8 802731C8 3C13800E */ lui $s3, %hi(gBattleStatus)
/* 1A1AAC 802731CC 2673C070 */ addiu $s3, $s3, %lo(gBattleStatus)
/* 1A1AB0 802731D0 AFBF0028 */ sw $ra, 0x28($sp)
/* 1A1AB4 802731D4 AFB20020 */ sw $s2, 0x20($sp)
/* 1A1AB8 802731D8 AFB1001C */ sw $s1, 0x1c($sp)
/* 1A1ABC 802731DC AFB00018 */ sw $s0, 0x18($sp)
/* 1A1AC0 802731E0 A664017E */ sh $a0, 0x17e($s3)
/* 1A1AC4 802731E4 00042400 */ sll $a0, $a0, 0x10
/* 1A1AC8 802731E8 8E7000D8 */ lw $s0, 0xd8($s3)
/* 1A1ACC 802731EC 00043C03 */ sra $a3, $a0, 0x10
/* 1A1AD0 802731F0 960201FA */ lhu $v0, 0x1fa($s0)
/* 1A1AD4 802731F4 3C058011 */ lui $a1, %hi(gPlayerData)
/* 1A1AD8 802731F8 24A5F290 */ addiu $a1, $a1, %lo(gPlayerData)
/* 1A1ADC 802731FC 00471021 */ addu $v0, $v0, $a3
/* 1A1AE0 80273200 00021C00 */ sll $v1, $v0, 0x10
/* 1A1AE4 80273204 00033C03 */ sra $a3, $v1, 0x10
/* 1A1AE8 80273208 A60201FA */ sh $v0, 0x1fa($s0)
/* 1A1AEC 8027320C 90A40002 */ lbu $a0, 2($a1)
/* 1A1AF0 80273210 960201FC */ lhu $v0, 0x1fc($s0)
/* 1A1AF4 80273214 960301FA */ lhu $v1, 0x1fa($s0)
/* 1A1AF8 80273218 00471021 */ addu $v0, $v0, $a3
/* 1A1AFC 8027321C 00671823 */ subu $v1, $v1, $a3
/* 1A1B00 80273220 A60201FC */ sh $v0, 0x1fc($s0)
/* 1A1B04 80273224 A20401B8 */ sb $a0, 0x1b8($s0)
/* 1A1B08 80273228 A60301FA */ sh $v1, 0x1fa($s0)
/* 1A1B0C 8027322C A6600180 */ sh $zero, 0x180($s3)
/* 1A1B10 80273230 920201B8 */ lbu $v0, 0x1b8($s0)
/* 1A1B14 80273234 00471023 */ subu $v0, $v0, $a3
/* 1A1B18 80273238 A20201B8 */ sb $v0, 0x1b8($s0)
/* 1A1B1C 8027323C 9262007B */ lbu $v0, 0x7b($s3)
/* 1A1B20 80273240 0100902D */ daddu $s2, $t0, $zero
/* 1A1B24 80273244 00471021 */ addu $v0, $v0, $a3
/* 1A1B28 80273248 A262007B */ sb $v0, 0x7b($s3)
/* 1A1B2C 8027324C 820301B8 */ lb $v1, 0x1b8($s0)
/* 1A1B30 80273250 1C600006 */ bgtz $v1, .L8027326C
/* 1A1B34 80273254 2611000C */ addiu $s1, $s0, 0xc
/* 1A1B38 80273258 96620180 */ lhu $v0, 0x180($s3)
/* 1A1B3C 8027325C 24120020 */ addiu $s2, $zero, 0x20
/* 1A1B40 80273260 00431021 */ addu $v0, $v0, $v1
/* 1A1B44 80273264 A6620180 */ sh $v0, 0x180($s3)
/* 1A1B48 80273268 A20001B8 */ sb $zero, 0x1b8($s0)
.L8027326C:
/* 1A1B4C 8027326C 96620180 */ lhu $v0, 0x180($s3)
/* 1A1B50 80273270 00471021 */ addu $v0, $v0, $a3
/* 1A1B54 80273274 A6620180 */ sh $v0, 0x180($s3)
/* 1A1B58 80273278 920201B8 */ lbu $v0, 0x1b8($s0)
/* 1A1B5C 8027327C A0A20002 */ sb $v0, 2($a1)
/* 1A1B60 80273280 24020009 */ addiu $v0, $zero, 9
/* 1A1B64 80273284 52420001 */ beql $s2, $v0, .L8027328C
/* 1A1B68 80273288 2412000A */ addiu $s2, $zero, 0xa
.L8027328C:
/* 1A1B6C 8027328C 24020017 */ addiu $v0, $zero, 0x17
/* 1A1B70 80273290 52420001 */ beql $s2, $v0, .L80273298
/* 1A1B74 80273294 24120019 */ addiu $s2, $zero, 0x19
.L80273298:
/* 1A1B78 80273298 24020020 */ addiu $v0, $zero, 0x20
/* 1A1B7C 8027329C 16420009 */ bne $s2, $v0, .L802732C4
/* 1A1B80 802732A0 2402002A */ addiu $v0, $zero, 0x2a
/* 1A1B84 802732A4 51020001 */ beql $t0, $v0, .L802732AC
/* 1A1B88 802732A8 24120027 */ addiu $s2, $zero, 0x27
.L802732AC:
/* 1A1B8C 802732AC 2402002C */ addiu $v0, $zero, 0x2c
/* 1A1B90 802732B0 51020001 */ beql $t0, $v0, .L802732B8
/* 1A1B94 802732B4 24120024 */ addiu $s2, $zero, 0x24
.L802732B8:
/* 1A1B98 802732B8 2402002F */ addiu $v0, $zero, 0x2f
/* 1A1B9C 802732BC 51020001 */ beql $t0, $v0, .L802732C4
/* 1A1BA0 802732C0 24120026 */ addiu $s2, $zero, 0x26
.L802732C4:
/* 1A1BA4 802732C4 14C0000D */ bnez $a2, .L802732FC
/* 1A1BA8 802732C8 24020001 */ addiu $v0, $zero, 1
/* 1A1BAC 802732CC 0220202D */ daddu $a0, $s1, $zero
/* 1A1BB0 802732D0 0000282D */ daddu $a1, $zero, $zero
/* 1A1BB4 802732D4 0C09A5D5 */ jal set_goal_pos_to_part
/* 1A1BB8 802732D8 00A0302D */ daddu $a2, $a1, $zero
/* 1A1BBC 802732DC C6200014 */ lwc1 $f0, 0x14($s1)
/* 1A1BC0 802732E0 240400E9 */ addiu $a0, $zero, 0xe9
/* 1A1BC4 802732E4 E7A00010 */ swc1 $f0, 0x10($sp)
/* 1A1BC8 802732E8 8E26000C */ lw $a2, 0xc($s1)
/* 1A1BCC 802732EC 8E270010 */ lw $a3, 0x10($s1)
/* 1A1BD0 802732F0 0C052757 */ jal sfx_play_sound_at_position
/* 1A1BD4 802732F4 0000282D */ daddu $a1, $zero, $zero
/* 1A1BD8 802732F8 24020001 */ addiu $v0, $zero, 1
.L802732FC:
/* 1A1BDC 802732FC AFA20010 */ sw $v0, 0x10($sp)
/* 1A1BE0 80273300 8E260014 */ lw $a2, 0x14($s1)
/* 1A1BE4 80273304 86670180 */ lh $a3, 0x180($s3)
/* 1A1BE8 80273308 C62C000C */ lwc1 $f12, 0xc($s1)
/* 1A1BEC 8027330C 0C09996B */ jal show_damage_popup
/* 1A1BF0 80273310 C62E0010 */ lwc1 $f14, 0x10($s1)
/* 1A1BF4 80273314 86620180 */ lh $v0, 0x180($s3)
/* 1A1BF8 80273318 AFA20010 */ sw $v0, 0x10($sp)
/* 1A1BFC 8027331C 8E25000C */ lw $a1, 0xc($s1)
/* 1A1C00 80273320 8E260010 */ lw $a2, 0x10($s1)
/* 1A1C04 80273324 8E270014 */ lw $a3, 0x14($s1)
/* 1A1C08 80273328 0C0999B9 */ jal func_802666E4
/* 1A1C0C 8027332C 0200202D */ daddu $a0, $s0, $zero
/* 1A1C10 80273330 86620180 */ lh $v0, 0x180($s3)
/* 1A1C14 80273334 18400003 */ blez $v0, .L80273344
/* 1A1C18 80273338 0200202D */ daddu $a0, $s0, $zero
/* 1A1C1C 8027333C 0C099C06 */ jal func_80267018
/* 1A1C20 80273340 24050001 */ addiu $a1, $zero, 1
.L80273344:
/* 1A1C24 80273344 3C10800E */ lui $s0, %hi(gBattleStatus)
/* 1A1C28 80273348 8E10C070 */ lw $s0, %lo(gBattleStatus)($s0)
/* 1A1C2C 8027334C 0240202D */ daddu $a0, $s2, $zero
/* 1A1C30 80273350 32100240 */ andi $s0, $s0, 0x240
/* 1A1C34 80273354 0C09C596 */ jal dispatch_event_player
/* 1A1C38 80273358 0010802B */ sltu $s0, $zero, $s0
/* 1A1C3C 8027335C 0200102D */ daddu $v0, $s0, $zero
/* 1A1C40 80273360 8FBF0028 */ lw $ra, 0x28($sp)
/* 1A1C44 80273364 8FB30024 */ lw $s3, 0x24($sp)
/* 1A1C48 80273368 8FB20020 */ lw $s2, 0x20($sp)
/* 1A1C4C 8027336C 8FB1001C */ lw $s1, 0x1c($sp)
/* 1A1C50 80273370 8FB00018 */ lw $s0, 0x18($sp)
/* 1A1C54 80273374 03E00008 */ jr $ra
/* 1A1C58 80273378 27BD0030 */ addiu $sp, $sp, 0x30

View File

@ -1,38 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_802712A0
/* 19FB80 802712A0 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 19FB84 802712A4 0080102D */ daddu $v0, $a0, $zero
/* 19FB88 802712A8 AFBF0010 */ sw $ra, 0x10($sp)
/* 19FB8C 802712AC C4400084 */ lwc1 $f0, 0x84($v0)
/* 19FB90 802712B0 46800020 */ cvt.s.w $f0, $f0
/* 19FB94 802712B4 44050000 */ mfc1 $a1, $f0
/* 19FB98 802712B8 C4400088 */ lwc1 $f0, 0x88($v0)
/* 19FB9C 802712BC 46800020 */ cvt.s.w $f0, $f0
/* 19FBA0 802712C0 44060000 */ mfc1 $a2, $f0
/* 19FBA4 802712C4 C440008C */ lwc1 $f0, 0x8c($v0)
/* 19FBA8 802712C8 46800020 */ cvt.s.w $f0, $f0
/* 19FBAC 802712CC 44070000 */ mfc1 $a3, $f0
/* 19FBB0 802712D0 0C01C2BC */ jal fx_debuff
/* 19FBB4 802712D4 24040002 */ addiu $a0, $zero, 2
/* 19FBB8 802712D8 8C44000C */ lw $a0, 0xc($v0)
/* 19FBBC 802712DC 240300C8 */ addiu $v1, $zero, 0xc8
/* 19FBC0 802712E0 A0830038 */ sb $v1, 0x38($a0)
/* 19FBC4 802712E4 8C44000C */ lw $a0, 0xc($v0)
/* 19FBC8 802712E8 24030078 */ addiu $v1, $zero, 0x78
/* 19FBCC 802712EC A0830039 */ sb $v1, 0x39($a0)
/* 19FBD0 802712F0 8C43000C */ lw $v1, 0xc($v0)
/* 19FBD4 802712F4 A060003A */ sb $zero, 0x3a($v1)
/* 19FBD8 802712F8 8C44000C */ lw $a0, 0xc($v0)
/* 19FBDC 802712FC 240300EA */ addiu $v1, $zero, 0xea
/* 19FBE0 80271300 A083003B */ sb $v1, 0x3b($a0)
/* 19FBE4 80271304 8C44000C */ lw $a0, 0xc($v0)
/* 19FBE8 80271308 240300C1 */ addiu $v1, $zero, 0xc1
/* 19FBEC 8027130C A083003C */ sb $v1, 0x3c($a0)
/* 19FBF0 80271310 8C43000C */ lw $v1, 0xc($v0)
/* 19FBF4 80271314 A060003D */ sb $zero, 0x3d($v1)
/* 19FBF8 80271318 8FBF0010 */ lw $ra, 0x10($sp)
/* 19FBFC 8027131C 24020002 */ addiu $v0, $zero, 2
/* 19FC00 80271320 03E00008 */ jr $ra
/* 19FC04 80271324 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,38 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80271328
/* 19FC08 80271328 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 19FC0C 8027132C 0080102D */ daddu $v0, $a0, $zero
/* 19FC10 80271330 AFBF0010 */ sw $ra, 0x10($sp)
/* 19FC14 80271334 C4400084 */ lwc1 $f0, 0x84($v0)
/* 19FC18 80271338 46800020 */ cvt.s.w $f0, $f0
/* 19FC1C 8027133C 44050000 */ mfc1 $a1, $f0
/* 19FC20 80271340 C4400088 */ lwc1 $f0, 0x88($v0)
/* 19FC24 80271344 46800020 */ cvt.s.w $f0, $f0
/* 19FC28 80271348 44060000 */ mfc1 $a2, $f0
/* 19FC2C 8027134C C440008C */ lwc1 $f0, 0x8c($v0)
/* 19FC30 80271350 46800020 */ cvt.s.w $f0, $f0
/* 19FC34 80271354 44070000 */ mfc1 $a3, $f0
/* 19FC38 80271358 0C01C2BC */ jal fx_debuff
/* 19FC3C 8027135C 24040002 */ addiu $a0, $zero, 2
/* 19FC40 80271360 8C44000C */ lw $a0, 0xc($v0)
/* 19FC44 80271364 2403003C */ addiu $v1, $zero, 0x3c
/* 19FC48 80271368 A0830038 */ sb $v1, 0x38($a0)
/* 19FC4C 8027136C 8C44000C */ lw $a0, 0xc($v0)
/* 19FC50 80271370 240300A0 */ addiu $v1, $zero, 0xa0
/* 19FC54 80271374 A0830039 */ sb $v1, 0x39($a0)
/* 19FC58 80271378 8C43000C */ lw $v1, 0xc($v0)
/* 19FC5C 8027137C A060003A */ sb $zero, 0x3a($v1)
/* 19FC60 80271380 8C44000C */ lw $a0, 0xc($v0)
/* 19FC64 80271384 2403005A */ addiu $v1, $zero, 0x5a
/* 19FC68 80271388 A083003B */ sb $v1, 0x3b($a0)
/* 19FC6C 8027138C 8C44000C */ lw $a0, 0xc($v0)
/* 19FC70 80271390 240300F0 */ addiu $v1, $zero, 0xf0
/* 19FC74 80271394 A083003C */ sb $v1, 0x3c($a0)
/* 19FC78 80271398 8C43000C */ lw $v1, 0xc($v0)
/* 19FC7C 8027139C A060003D */ sb $zero, 0x3d($v1)
/* 19FC80 802713A0 8FBF0010 */ lw $ra, 0x10($sp)
/* 19FC84 802713A4 24020002 */ addiu $v0, $zero, 2
/* 19FC88 802713A8 03E00008 */ jr $ra
/* 19FC8C 802713AC 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,39 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_802713B0
/* 19FC90 802713B0 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 19FC94 802713B4 0080102D */ daddu $v0, $a0, $zero
/* 19FC98 802713B8 AFBF0010 */ sw $ra, 0x10($sp)
/* 19FC9C 802713BC C4400084 */ lwc1 $f0, 0x84($v0)
/* 19FCA0 802713C0 46800020 */ cvt.s.w $f0, $f0
/* 19FCA4 802713C4 44050000 */ mfc1 $a1, $f0
/* 19FCA8 802713C8 C4400088 */ lwc1 $f0, 0x88($v0)
/* 19FCAC 802713CC 46800020 */ cvt.s.w $f0, $f0
/* 19FCB0 802713D0 44060000 */ mfc1 $a2, $f0
/* 19FCB4 802713D4 C440008C */ lwc1 $f0, 0x8c($v0)
/* 19FCB8 802713D8 46800020 */ cvt.s.w $f0, $f0
/* 19FCBC 802713DC 44070000 */ mfc1 $a3, $f0
/* 19FCC0 802713E0 0C01C2BC */ jal fx_debuff
/* 19FCC4 802713E4 24040002 */ addiu $a0, $zero, 2
/* 19FCC8 802713E8 0040282D */ daddu $a1, $v0, $zero
/* 19FCCC 802713EC 8CA2000C */ lw $v0, 0xc($a1)
/* 19FCD0 802713F0 240400CD */ addiu $a0, $zero, 0xcd
/* 19FCD4 802713F4 A0440038 */ sb $a0, 0x38($v0)
/* 19FCD8 802713F8 8CA2000C */ lw $v0, 0xc($a1)
/* 19FCDC 802713FC A0400039 */ sb $zero, 0x39($v0)
/* 19FCE0 80271400 8CA3000C */ lw $v1, 0xc($a1)
/* 19FCE4 80271404 24020028 */ addiu $v0, $zero, 0x28
/* 19FCE8 80271408 A062003A */ sb $v0, 0x3a($v1)
/* 19FCEC 8027140C 8CA3000C */ lw $v1, 0xc($a1)
/* 19FCF0 80271410 A064003B */ sb $a0, 0x3b($v1)
/* 19FCF4 80271414 8CA4000C */ lw $a0, 0xc($a1)
/* 19FCF8 80271418 24030020 */ addiu $v1, $zero, 0x20
/* 19FCFC 8027141C A083003C */ sb $v1, 0x3c($a0)
/* 19FD00 80271420 8CA4000C */ lw $a0, 0xc($a1)
/* 19FD04 80271424 240300F2 */ addiu $v1, $zero, 0xf2
/* 19FD08 80271428 A083003D */ sb $v1, 0x3d($a0)
/* 19FD0C 8027142C 8FBF0010 */ lw $ra, 0x10($sp)
/* 19FD10 80271430 24020002 */ addiu $v0, $zero, 2
/* 19FD14 80271434 03E00008 */ jr $ra
/* 19FD18 80271438 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,69 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80271484
/* 19FD64 80271484 27BDFFB0 */ addiu $sp, $sp, -0x50
/* 19FD68 80271488 AFB00028 */ sw $s0, 0x28($sp)
/* 19FD6C 8027148C 0080802D */ daddu $s0, $a0, $zero
/* 19FD70 80271490 AFBF0034 */ sw $ra, 0x34($sp)
/* 19FD74 80271494 AFB20030 */ sw $s2, 0x30($sp)
/* 19FD78 80271498 AFB1002C */ sw $s1, 0x2c($sp)
/* 19FD7C 8027149C F7B80048 */ sdc1 $f24, 0x48($sp)
/* 19FD80 802714A0 F7B60040 */ sdc1 $f22, 0x40($sp)
/* 19FD84 802714A4 F7B40038 */ sdc1 $f20, 0x38($sp)
/* 19FD88 802714A8 C6000084 */ lwc1 $f0, 0x84($s0)
/* 19FD8C 802714AC 46800020 */ cvt.s.w $f0, $f0
/* 19FD90 802714B0 44050000 */ mfc1 $a1, $f0
/* 19FD94 802714B4 C6000088 */ lwc1 $f0, 0x88($s0)
/* 19FD98 802714B8 46800020 */ cvt.s.w $f0, $f0
/* 19FD9C 802714BC 44060000 */ mfc1 $a2, $f0
/* 19FDA0 802714C0 C600008C */ lwc1 $f0, 0x8c($s0)
/* 19FDA4 802714C4 46800020 */ cvt.s.w $f0, $f0
/* 19FDA8 802714C8 0000202D */ daddu $a0, $zero, $zero
/* 19FDAC 802714CC 2412000A */ addiu $s2, $zero, 0xa
/* 19FDB0 802714D0 8E020090 */ lw $v0, 0x90($s0)
/* 19FDB4 802714D4 44070000 */ mfc1 $a3, $f0
/* 19FDB8 802714D8 3C013F80 */ lui $at, 0x3f80
/* 19FDBC 802714DC 4481C000 */ mtc1 $at, $f24
/* 19FDC0 802714E0 90430191 */ lbu $v1, 0x191($v0)
/* 19FDC4 802714E4 90420190 */ lbu $v0, 0x190($v0)
/* 19FDC8 802714E8 2411001E */ addiu $s1, $zero, 0x1e
/* 19FDCC 802714EC E7B80018 */ swc1 $f24, 0x18($sp)
/* 19FDD0 802714F0 AFB2001C */ sw $s2, 0x1c($sp)
/* 19FDD4 802714F4 AFB10020 */ sw $s1, 0x20($sp)
/* 19FDD8 802714F8 4483B000 */ mtc1 $v1, $f22
/* 19FDDC 802714FC 00000000 */ nop
/* 19FDE0 80271500 4680B5A0 */ cvt.s.w $f22, $f22
/* 19FDE4 80271504 00021042 */ srl $v0, $v0, 1
/* 19FDE8 80271508 4482A000 */ mtc1 $v0, $f20
/* 19FDEC 8027150C 00000000 */ nop
/* 19FDF0 80271510 4680A520 */ cvt.s.w $f20, $f20
/* 19FDF4 80271514 E7B60010 */ swc1 $f22, 0x10($sp)
/* 19FDF8 80271518 0C01C8D4 */ jal fx_misc_particles
/* 19FDFC 8027151C E7B40014 */ swc1 $f20, 0x14($sp)
/* 19FE00 80271520 C6000084 */ lwc1 $f0, 0x84($s0)
/* 19FE04 80271524 46800020 */ cvt.s.w $f0, $f0
/* 19FE08 80271528 44050000 */ mfc1 $a1, $f0
/* 19FE0C 8027152C C6000088 */ lwc1 $f0, 0x88($s0)
/* 19FE10 80271530 46800020 */ cvt.s.w $f0, $f0
/* 19FE14 80271534 44060000 */ mfc1 $a2, $f0
/* 19FE18 80271538 C600008C */ lwc1 $f0, 0x8c($s0)
/* 19FE1C 8027153C 46800020 */ cvt.s.w $f0, $f0
/* 19FE20 80271540 44070000 */ mfc1 $a3, $f0
/* 19FE24 80271544 24040001 */ addiu $a0, $zero, 1
/* 19FE28 80271548 E7B60010 */ swc1 $f22, 0x10($sp)
/* 19FE2C 8027154C E7B40014 */ swc1 $f20, 0x14($sp)
/* 19FE30 80271550 E7B80018 */ swc1 $f24, 0x18($sp)
/* 19FE34 80271554 AFB2001C */ sw $s2, 0x1c($sp)
/* 19FE38 80271558 0C01C8D4 */ jal fx_misc_particles
/* 19FE3C 8027155C AFB10020 */ sw $s1, 0x20($sp)
/* 19FE40 80271560 8FBF0034 */ lw $ra, 0x34($sp)
/* 19FE44 80271564 8FB20030 */ lw $s2, 0x30($sp)
/* 19FE48 80271568 8FB1002C */ lw $s1, 0x2c($sp)
/* 19FE4C 8027156C 8FB00028 */ lw $s0, 0x28($sp)
/* 19FE50 80271570 D7B80048 */ ldc1 $f24, 0x48($sp)
/* 19FE54 80271574 D7B60040 */ ldc1 $f22, 0x40($sp)
/* 19FE58 80271578 D7B40038 */ ldc1 $f20, 0x38($sp)
/* 19FE5C 8027157C 24020002 */ addiu $v0, $zero, 2
/* 19FE60 80271580 03E00008 */ jr $ra
/* 19FE64 80271584 27BD0050 */ addiu $sp, $sp, 0x50

View File

@ -1,57 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80271588
/* 19FE68 80271588 27BDFFC8 */ addiu $sp, $sp, -0x38
/* 19FE6C 8027158C F7B60030 */ sdc1 $f22, 0x30($sp)
/* 19FE70 80271590 3C013F80 */ lui $at, 0x3f80
/* 19FE74 80271594 4481B000 */ mtc1 $at, $f22
/* 19FE78 80271598 AFB1001C */ sw $s1, 0x1c($sp)
/* 19FE7C 8027159C 0080882D */ daddu $s1, $a0, $zero
/* 19FE80 802715A0 AFB00018 */ sw $s0, 0x18($sp)
/* 19FE84 802715A4 0000802D */ daddu $s0, $zero, $zero
/* 19FE88 802715A8 AFB20020 */ sw $s2, 0x20($sp)
/* 19FE8C 802715AC 24120019 */ addiu $s2, $zero, 0x19
/* 19FE90 802715B0 AFBF0024 */ sw $ra, 0x24($sp)
/* 19FE94 802715B4 F7B40028 */ sdc1 $f20, 0x28($sp)
.L802715B8:
/* 19FE98 802715B8 0C00A67F */ jal rand_int
/* 19FE9C 802715BC 2404001E */ addiu $a0, $zero, 0x1e
/* 19FEA0 802715C0 24040014 */ addiu $a0, $zero, 0x14
/* 19FEA4 802715C4 8E230084 */ lw $v1, 0x84($s1)
/* 19FEA8 802715C8 00621821 */ addu $v1, $v1, $v0
/* 19FEAC 802715CC 2463FFF1 */ addiu $v1, $v1, -0xf
/* 19FEB0 802715D0 4483A000 */ mtc1 $v1, $f20
/* 19FEB4 802715D4 00000000 */ nop
/* 19FEB8 802715D8 4680A520 */ cvt.s.w $f20, $f20
/* 19FEBC 802715DC 0C00A67F */ jal rand_int
/* 19FEC0 802715E0 26100001 */ addiu $s0, $s0, 1
/* 19FEC4 802715E4 8E230088 */ lw $v1, 0x88($s1)
/* 19FEC8 802715E8 8E27008C */ lw $a3, 0x8c($s1)
/* 19FECC 802715EC 4405A000 */ mfc1 $a1, $f20
/* 19FED0 802715F0 00621821 */ addu $v1, $v1, $v0
/* 19FED4 802715F4 2463FFF1 */ addiu $v1, $v1, -0xf
/* 19FED8 802715F8 24E70005 */ addiu $a3, $a3, 5
/* 19FEDC 802715FC 44830000 */ mtc1 $v1, $f0
/* 19FEE0 80271600 00000000 */ nop
/* 19FEE4 80271604 46800020 */ cvt.s.w $f0, $f0
/* 19FEE8 80271608 44060000 */ mfc1 $a2, $f0
/* 19FEEC 8027160C 44870000 */ mtc1 $a3, $f0
/* 19FEF0 80271610 00000000 */ nop
/* 19FEF4 80271614 46800020 */ cvt.s.w $f0, $f0
/* 19FEF8 80271618 44070000 */ mfc1 $a3, $f0
/* 19FEFC 8027161C 0000202D */ daddu $a0, $zero, $zero
/* 19FF00 80271620 E7B60010 */ swc1 $f22, 0x10($sp)
/* 19FF04 80271624 0C01C7FC */ jal fx_floating_cloud_puff
/* 19FF08 80271628 AFB20014 */ sw $s2, 0x14($sp)
/* 19FF0C 8027162C 2A020014 */ slti $v0, $s0, 0x14
/* 19FF10 80271630 1440FFE1 */ bnez $v0, .L802715B8
/* 19FF14 80271634 24020002 */ addiu $v0, $zero, 2
/* 19FF18 80271638 8FBF0024 */ lw $ra, 0x24($sp)
/* 19FF1C 8027163C 8FB20020 */ lw $s2, 0x20($sp)
/* 19FF20 80271640 8FB1001C */ lw $s1, 0x1c($sp)
/* 19FF24 80271644 8FB00018 */ lw $s0, 0x18($sp)
/* 19FF28 80271648 D7B60030 */ ldc1 $f22, 0x30($sp)
/* 19FF2C 8027164C D7B40028 */ ldc1 $f20, 0x28($sp)
/* 19FF30 80271650 03E00008 */ jr $ra
/* 19FF34 80271654 27BD0038 */ addiu $sp, $sp, 0x38

View File

@ -1,251 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel debuff_appendGfx
/* 3647EC E00624EC 27BDFEE0 */ addiu $sp, $sp, -0x120
/* 3647F0 E00624F0 AFBE0100 */ sw $fp, 0x100($sp)
/* 3647F4 E00624F4 0080F02D */ daddu $fp, $a0, $zero
/* 3647F8 E00624F8 3C07DB06 */ lui $a3, 0xdb06
/* 3647FC E00624FC 34E70024 */ ori $a3, $a3, 0x24
/* 364800 E0062500 27A40018 */ addiu $a0, $sp, 0x18
/* 364804 E0062504 AFB100E4 */ sw $s1, 0xe4($sp)
/* 364808 E0062508 3C110001 */ lui $s1, 1
/* 36480C E006250C 36311630 */ ori $s1, $s1, 0x1630
/* 364810 E0062510 AFB300EC */ sw $s3, 0xec($sp)
/* 364814 E0062514 3C13800A */ lui $s3, %hi(gMasterGfxPos)
/* 364818 E0062518 2673A66C */ addiu $s3, $s3, %lo(gMasterGfxPos)
/* 36481C E006251C AFBF0104 */ sw $ra, 0x104($sp)
/* 364820 E0062520 AFB700FC */ sw $s7, 0xfc($sp)
/* 364824 E0062524 AFB600F8 */ sw $s6, 0xf8($sp)
/* 364828 E0062528 AFB500F4 */ sw $s5, 0xf4($sp)
/* 36482C E006252C AFB400F0 */ sw $s4, 0xf0($sp)
/* 364830 E0062530 AFB200E8 */ sw $s2, 0xe8($sp)
/* 364834 E0062534 AFB000E0 */ sw $s0, 0xe0($sp)
/* 364838 E0062538 F7B80118 */ sdc1 $f24, 0x118($sp)
/* 36483C E006253C F7B60110 */ sdc1 $f22, 0x110($sp)
/* 364840 E0062540 F7B40108 */ sdc1 $f20, 0x108($sp)
/* 364844 E0062544 8E630000 */ lw $v1, ($s3)
/* 364848 E0062548 8FD2000C */ lw $s2, 0xc($fp)
/* 36484C E006254C 0060282D */ daddu $a1, $v1, $zero
/* 364850 E0062550 24630008 */ addiu $v1, $v1, 8
/* 364854 E0062554 AE630000 */ sw $v1, ($s3)
/* 364858 E0062558 3C08E006 */ lui $t0, %hi(D_E00628C0)
/* 36485C E006255C 8D0828C0 */ lw $t0, %lo(D_E00628C0)($t0)
/* 364860 E0062560 3C06E006 */ lui $a2, %hi(D_E00628C4)
/* 364864 E0062564 8CC628C4 */ lw $a2, %lo(D_E00628C4)($a2)
/* 364868 E0062568 3C02E700 */ lui $v0, 0xe700
/* 36486C E006256C AFA800D8 */ sw $t0, 0xd8($sp)
/* 364870 E0062570 ACA20000 */ sw $v0, ($a1)
/* 364874 E0062574 ACA00004 */ sw $zero, 4($a1)
/* 364878 E0062578 AC670000 */ sw $a3, ($v1)
/* 36487C E006257C 8FC50010 */ lw $a1, 0x10($fp)
/* 364880 E0062580 24620008 */ addiu $v0, $v1, 8
/* 364884 E0062584 AE620000 */ sw $v0, ($s3)
/* 364888 E0062588 8CA5001C */ lw $a1, 0x1c($a1)
/* 36488C E006258C 3C02DE00 */ lui $v0, 0xde00
/* 364890 E0062590 AC620008 */ sw $v0, 8($v1)
/* 364894 E0062594 3C028000 */ lui $v0, 0x8000
/* 364898 E0062598 AC66000C */ sw $a2, 0xc($v1)
/* 36489C E006259C 00A22821 */ addu $a1, $a1, $v0
/* 3648A0 E00625A0 AC650004 */ sw $a1, 4($v1)
/* 3648A4 E00625A4 8E450004 */ lw $a1, 4($s2)
/* 3648A8 E00625A8 8E460008 */ lw $a2, 8($s2)
/* 3648AC E00625AC 8E47000C */ lw $a3, 0xc($s2)
/* 3648B0 E00625B0 24630010 */ addiu $v1, $v1, 0x10
/* 3648B4 E00625B4 0C080108 */ jal shim_guTranslateF
/* 3648B8 E00625B8 AE630000 */ sw $v1, ($s3)
/* 3648BC E00625BC 27B50058 */ addiu $s5, $sp, 0x58
/* 3648C0 E00625C0 4480A000 */ mtc1 $zero, $f20
/* 3648C4 E00625C4 3C038007 */ lui $v1, %hi(gCurrentCameraID)
/* 3648C8 E00625C8 8C637410 */ lw $v1, %lo(gCurrentCameraID)($v1)
/* 3648CC E00625CC 3C013F80 */ lui $at, 0x3f80
/* 3648D0 E00625D0 4481C000 */ mtc1 $at, $f24
/* 3648D4 E00625D4 00031080 */ sll $v0, $v1, 2
/* 3648D8 E00625D8 00431021 */ addu $v0, $v0, $v1
/* 3648DC E00625DC 00021080 */ sll $v0, $v0, 2
/* 3648E0 E00625E0 00431023 */ subu $v0, $v0, $v1
/* 3648E4 E00625E4 000218C0 */ sll $v1, $v0, 3
/* 3648E8 E00625E8 00431021 */ addu $v0, $v0, $v1
/* 3648EC E00625EC 000210C0 */ sll $v0, $v0, 3
/* 3648F0 E00625F0 4406A000 */ mfc1 $a2, $f20
/* 3648F4 E00625F4 3C01800B */ lui $at, %hi(gCameras+0x6C)
/* 3648F8 E00625F8 00220821 */ addu $at, $at, $v0
/* 3648FC E00625FC C4201DEC */ lwc1 $f0, %lo(gCameras+0x6C)($at)
/* 364900 E0062600 4407C000 */ mfc1 $a3, $f24
/* 364904 E0062604 46000007 */ neg.s $f0, $f0
/* 364908 E0062608 44050000 */ mfc1 $a1, $f0
/* 36490C E006260C 02A0202D */ daddu $a0, $s5, $zero
/* 364910 E0062610 0C080104 */ jal shim_guRotateF
/* 364914 E0062614 E7B40010 */ swc1 $f20, 0x10($sp)
/* 364918 E0062618 02A0202D */ daddu $a0, $s5, $zero
/* 36491C E006261C 27A50018 */ addiu $a1, $sp, 0x18
/* 364920 E0062620 27B00098 */ addiu $s0, $sp, 0x98
/* 364924 E0062624 0C080114 */ jal shim_guMtxCatF
/* 364928 E0062628 0200302D */ daddu $a2, $s0, $zero
/* 36492C E006262C 0200202D */ daddu $a0, $s0, $zero
/* 364930 E0062630 3C108007 */ lui $s0, %hi(gMatrixListPos)
/* 364934 E0062634 261041F0 */ addiu $s0, $s0, %lo(gMatrixListPos)
/* 364938 E0062638 3C16800A */ lui $s6, %hi(gDisplayContext)
/* 36493C E006263C 26D6A674 */ addiu $s6, $s6, %lo(gDisplayContext)
/* 364940 E0062640 96050000 */ lhu $a1, ($s0)
/* 364944 E0062644 8EC20000 */ lw $v0, ($s6)
/* 364948 E0062648 00052980 */ sll $a1, $a1, 6
/* 36494C E006264C 00B12821 */ addu $a1, $a1, $s1
/* 364950 E0062650 0C080118 */ jal shim_guMtxF2L
/* 364954 E0062654 00452821 */ addu $a1, $v0, $a1
/* 364958 E0062658 8E660000 */ lw $a2, ($s3)
/* 36495C E006265C 24140001 */ addiu $s4, $zero, 1
/* 364960 E0062660 00C0202D */ daddu $a0, $a2, $zero
/* 364964 E0062664 24C60008 */ addiu $a2, $a2, 8
/* 364968 E0062668 AE660000 */ sw $a2, ($s3)
/* 36496C E006266C 96020000 */ lhu $v0, ($s0)
/* 364970 E0062670 3C03DA38 */ lui $v1, 0xda38
/* 364974 E0062674 AC830000 */ sw $v1, ($a0)
/* 364978 E0062678 00541821 */ addu $v1, $v0, $s4
/* 36497C E006267C 3042FFFF */ andi $v0, $v0, 0xffff
/* 364980 E0062680 00021180 */ sll $v0, $v0, 6
/* 364984 E0062684 A6030000 */ sh $v1, ($s0)
/* 364988 E0062688 8EC30000 */ lw $v1, ($s6)
/* 36498C E006268C 00511021 */ addu $v0, $v0, $s1
/* 364990 E0062690 00621821 */ addu $v1, $v1, $v0
/* 364994 E0062694 24C20008 */ addiu $v0, $a2, 8
/* 364998 E0062698 AC830004 */ sw $v1, 4($a0)
/* 36499C E006269C AE620000 */ sw $v0, ($s3)
/* 3649A0 E00626A0 3C02FA00 */ lui $v0, 0xfa00
/* 3649A4 E00626A4 ACC20000 */ sw $v0, ($a2)
/* 3649A8 E00626A8 92420038 */ lbu $v0, 0x38($s2)
/* 3649AC E00626AC 92440039 */ lbu $a0, 0x39($s2)
/* 3649B0 E00626B0 9245003A */ lbu $a1, 0x3a($s2)
/* 3649B4 E00626B4 92470037 */ lbu $a3, 0x37($s2)
/* 3649B8 E00626B8 24C30010 */ addiu $v1, $a2, 0x10
/* 3649BC E00626BC AE630000 */ sw $v1, ($s3)
/* 3649C0 E00626C0 3C03FB00 */ lui $v1, 0xfb00
/* 3649C4 E00626C4 ACC30008 */ sw $v1, 8($a2)
/* 3649C8 E00626C8 00021600 */ sll $v0, $v0, 0x18
/* 3649CC E00626CC 00042400 */ sll $a0, $a0, 0x10
/* 3649D0 E00626D0 00441025 */ or $v0, $v0, $a0
/* 3649D4 E00626D4 00052A00 */ sll $a1, $a1, 8
/* 3649D8 E00626D8 00451025 */ or $v0, $v0, $a1
/* 3649DC E00626DC 00471025 */ or $v0, $v0, $a3
/* 3649E0 E00626E0 ACC20004 */ sw $v0, 4($a2)
/* 3649E4 E00626E4 9242003B */ lbu $v0, 0x3b($s2)
/* 3649E8 E00626E8 9244003C */ lbu $a0, 0x3c($s2)
/* 3649EC E00626EC 9243003D */ lbu $v1, 0x3d($s2)
/* 3649F0 E00626F0 00021600 */ sll $v0, $v0, 0x18
/* 3649F4 E00626F4 00042400 */ sll $a0, $a0, 0x10
/* 3649F8 E00626F8 00441025 */ or $v0, $v0, $a0
/* 3649FC E00626FC 00031A00 */ sll $v1, $v1, 8
/* 364A00 E0062700 00431025 */ or $v0, $v0, $v1
/* 364A04 E0062704 ACC2000C */ sw $v0, 0xc($a2)
/* 364A08 E0062708 8FC20008 */ lw $v0, 8($fp)
/* 364A0C E006270C 0282102A */ slt $v0, $s4, $v0
/* 364A10 E0062710 10400049 */ beqz $v0, .LE0062838
/* 364A14 E0062714 26520040 */ addiu $s2, $s2, 0x40
/* 364A18 E0062718 02A0882D */ daddu $s1, $s5, $zero
/* 364A1C E006271C 4600A586 */ mov.s $f22, $f20
/* 364A20 E0062720 4600C506 */ mov.s $f20, $f24
/* 364A24 E0062724 02C0B82D */ daddu $s7, $s6, $zero
/* 364A28 E0062728 0200B02D */ daddu $s6, $s0, $zero
/* 364A2C E006272C 3C150001 */ lui $s5, 1
/* 364A30 E0062730 36B51630 */ ori $s5, $s5, 0x1630
/* 364A34 E0062734 2650001C */ addiu $s0, $s2, 0x1c
.LE0062738:
/* 364A38 E0062738 27A40018 */ addiu $a0, $sp, 0x18
/* 364A3C E006273C 8E05FFE8 */ lw $a1, -0x18($s0)
/* 364A40 E0062740 8E06FFEC */ lw $a2, -0x14($s0)
/* 364A44 E0062744 8E07FFF0 */ lw $a3, -0x10($s0)
/* 364A48 E0062748 0C080108 */ jal shim_guTranslateF
/* 364A4C E006274C 26940001 */ addiu $s4, $s4, 1
/* 364A50 E0062750 E7B40010 */ swc1 $f20, 0x10($sp)
/* 364A54 E0062754 8E050010 */ lw $a1, 0x10($s0)
/* 364A58 E0062758 4406B000 */ mfc1 $a2, $f22
/* 364A5C E006275C 4407B000 */ mfc1 $a3, $f22
/* 364A60 E0062760 0C080104 */ jal shim_guRotateF
/* 364A64 E0062764 0220202D */ daddu $a0, $s1, $zero
/* 364A68 E0062768 0220202D */ daddu $a0, $s1, $zero
/* 364A6C E006276C 27A50018 */ addiu $a1, $sp, 0x18
/* 364A70 E0062770 0C080114 */ jal shim_guMtxCatF
/* 364A74 E0062774 00A0302D */ daddu $a2, $a1, $zero
/* 364A78 E0062778 0220202D */ daddu $a0, $s1, $zero
/* 364A7C E006277C 8E050004 */ lw $a1, 4($s0)
/* 364A80 E0062780 8E060000 */ lw $a2, ($s0)
/* 364A84 E0062784 4407A000 */ mfc1 $a3, $f20
/* 364A88 E0062788 0C080110 */ jal shim_guScaleF
/* 364A8C E006278C 26100040 */ addiu $s0, $s0, 0x40
/* 364A90 E0062790 0220202D */ daddu $a0, $s1, $zero
/* 364A94 E0062794 27A50018 */ addiu $a1, $sp, 0x18
/* 364A98 E0062798 0C080114 */ jal shim_guMtxCatF
/* 364A9C E006279C 00A0302D */ daddu $a2, $a1, $zero
/* 364AA0 E00627A0 27A40018 */ addiu $a0, $sp, 0x18
/* 364AA4 E00627A4 96C50000 */ lhu $a1, ($s6)
/* 364AA8 E00627A8 8EE20000 */ lw $v0, ($s7)
/* 364AAC E00627AC 00052980 */ sll $a1, $a1, 6
/* 364AB0 E00627B0 00B52821 */ addu $a1, $a1, $s5
/* 364AB4 E00627B4 0C080118 */ jal shim_guMtxF2L
/* 364AB8 E00627B8 00452821 */ addu $a1, $v0, $a1
/* 364ABC E00627BC 3C06D838 */ lui $a2, 0xd838
/* 364AC0 E00627C0 8E640000 */ lw $a0, ($s3)
/* 364AC4 E00627C4 34C60002 */ ori $a2, $a2, 2
/* 364AC8 E00627C8 0080282D */ daddu $a1, $a0, $zero
/* 364ACC E00627CC 24840008 */ addiu $a0, $a0, 8
/* 364AD0 E00627D0 AE640000 */ sw $a0, ($s3)
/* 364AD4 E00627D4 96C20000 */ lhu $v0, ($s6)
/* 364AD8 E00627D8 3C03DA38 */ lui $v1, 0xda38
/* 364ADC E00627DC ACA30000 */ sw $v1, ($a1)
/* 364AE0 E00627E0 24430001 */ addiu $v1, $v0, 1
/* 364AE4 E00627E4 3042FFFF */ andi $v0, $v0, 0xffff
/* 364AE8 E00627E8 00021180 */ sll $v0, $v0, 6
/* 364AEC E00627EC A6C30000 */ sh $v1, ($s6)
/* 364AF0 E00627F0 8EE30000 */ lw $v1, ($s7)
/* 364AF4 E00627F4 00551021 */ addu $v0, $v0, $s5
/* 364AF8 E00627F8 00621821 */ addu $v1, $v1, $v0
/* 364AFC E00627FC 24820008 */ addiu $v0, $a0, 8
/* 364B00 E0062800 ACA30004 */ sw $v1, 4($a1)
/* 364B04 E0062804 AE620000 */ sw $v0, ($s3)
/* 364B08 E0062808 3C02DE00 */ lui $v0, 0xde00
/* 364B0C E006280C AC820000 */ sw $v0, ($a0)
/* 364B10 E0062810 8FA800D8 */ lw $t0, 0xd8($sp)
/* 364B14 E0062814 24020040 */ addiu $v0, $zero, 0x40
/* 364B18 E0062818 AC860008 */ sw $a2, 8($a0)
/* 364B1C E006281C AC82000C */ sw $v0, 0xc($a0)
/* 364B20 E0062820 AC880004 */ sw $t0, 4($a0)
/* 364B24 E0062824 8FC20008 */ lw $v0, 8($fp)
/* 364B28 E0062828 24840010 */ addiu $a0, $a0, 0x10
/* 364B2C E006282C 0282102A */ slt $v0, $s4, $v0
/* 364B30 E0062830 1440FFC1 */ bnez $v0, .LE0062738
/* 364B34 E0062834 AE640000 */ sw $a0, ($s3)
.LE0062838:
/* 364B38 E0062838 3C03D838 */ lui $v1, 0xd838
/* 364B3C E006283C 3C04800A */ lui $a0, %hi(gMasterGfxPos)
/* 364B40 E0062840 2484A66C */ addiu $a0, $a0, %lo(gMasterGfxPos)
/* 364B44 E0062844 8C820000 */ lw $v0, ($a0)
/* 364B48 E0062848 34630002 */ ori $v1, $v1, 2
/* 364B4C E006284C 0040282D */ daddu $a1, $v0, $zero
/* 364B50 E0062850 24420008 */ addiu $v0, $v0, 8
/* 364B54 E0062854 AC820000 */ sw $v0, ($a0)
/* 364B58 E0062858 ACA30000 */ sw $v1, ($a1)
/* 364B5C E006285C 24030040 */ addiu $v1, $zero, 0x40
/* 364B60 E0062860 ACA30004 */ sw $v1, 4($a1)
/* 364B64 E0062864 24430008 */ addiu $v1, $v0, 8
/* 364B68 E0062868 AC830000 */ sw $v1, ($a0)
/* 364B6C E006286C 3C03E700 */ lui $v1, 0xe700
/* 364B70 E0062870 AC430000 */ sw $v1, ($v0)
/* 364B74 E0062874 AC400004 */ sw $zero, 4($v0)
/* 364B78 E0062878 8FBF0104 */ lw $ra, 0x104($sp)
/* 364B7C E006287C 8FBE0100 */ lw $fp, 0x100($sp)
/* 364B80 E0062880 8FB700FC */ lw $s7, 0xfc($sp)
/* 364B84 E0062884 8FB600F8 */ lw $s6, 0xf8($sp)
/* 364B88 E0062888 8FB500F4 */ lw $s5, 0xf4($sp)
/* 364B8C E006288C 8FB400F0 */ lw $s4, 0xf0($sp)
/* 364B90 E0062890 8FB300EC */ lw $s3, 0xec($sp)
/* 364B94 E0062894 8FB200E8 */ lw $s2, 0xe8($sp)
/* 364B98 E0062898 8FB100E4 */ lw $s1, 0xe4($sp)
/* 364B9C E006289C 8FB000E0 */ lw $s0, 0xe0($sp)
/* 364BA0 E00628A0 D7B80118 */ ldc1 $f24, 0x118($sp)
/* 364BA4 E00628A4 D7B60110 */ ldc1 $f22, 0x110($sp)
/* 364BA8 E00628A8 D7B40108 */ ldc1 $f20, 0x108($sp)
/* 364BAC E00628AC 03E00008 */ jr $ra
/* 364BB0 E00628B0 27BD0120 */ addiu $sp, $sp, 0x120
/* 364BB4 E00628B4 00000000 */ nop
/* 364BB8 E00628B8 00000000 */ nop
/* 364BBC E00628BC 00000000 */ nop

View File

@ -1,146 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel debuff_main
/* 364300 E0062000 27BDFF90 */ addiu $sp, $sp, -0x70
/* 364304 E0062004 F7B40048 */ sdc1 $f20, 0x48($sp)
/* 364308 E0062008 4485A000 */ mtc1 $a1, $f20
/* 36430C E006200C AFB1002C */ sw $s1, 0x2c($sp)
/* 364310 E0062010 0080882D */ daddu $s1, $a0, $zero
/* 364314 E0062014 F7B60050 */ sdc1 $f22, 0x50($sp)
/* 364318 E0062018 4486B000 */ mtc1 $a2, $f22
/* 36431C E006201C 27A40010 */ addiu $a0, $sp, 0x10
/* 364320 E0062020 F7B80058 */ sdc1 $f24, 0x58($sp)
/* 364324 E0062024 4487C000 */ mtc1 $a3, $f24
/* 364328 E0062028 3C02E006 */ lui $v0, %hi(debuff_init)
/* 36432C E006202C 24422218 */ addiu $v0, $v0, %lo(debuff_init)
/* 364330 E0062030 AFA20018 */ sw $v0, 0x18($sp)
/* 364334 E0062034 3C02E006 */ lui $v0, %hi(debuff_update)
/* 364338 E0062038 24422220 */ addiu $v0, $v0, %lo(debuff_update)
/* 36433C E006203C AFA2001C */ sw $v0, 0x1c($sp)
/* 364340 E0062040 3C02E006 */ lui $v0, %hi(debuff_render)
/* 364344 E0062044 244224A8 */ addiu $v0, $v0, %lo(debuff_render)
/* 364348 E0062048 AFA20020 */ sw $v0, 0x20($sp)
/* 36434C E006204C 24020031 */ addiu $v0, $zero, 0x31
/* 364350 E0062050 AFBF0040 */ sw $ra, 0x40($sp)
/* 364354 E0062054 AFB5003C */ sw $s5, 0x3c($sp)
/* 364358 E0062058 AFB40038 */ sw $s4, 0x38($sp)
/* 36435C E006205C AFB30034 */ sw $s3, 0x34($sp)
/* 364360 E0062060 AFB20030 */ sw $s2, 0x30($sp)
/* 364364 E0062064 AFB00028 */ sw $s0, 0x28($sp)
/* 364368 E0062068 F7BC0068 */ sdc1 $f28, 0x68($sp)
/* 36436C E006206C F7BA0060 */ sdc1 $f26, 0x60($sp)
/* 364370 E0062070 AFA00010 */ sw $zero, 0x10($sp)
/* 364374 E0062074 AFA00024 */ sw $zero, 0x24($sp)
/* 364378 E0062078 0C080124 */ jal shim_create_effect_instance
/* 36437C E006207C AFA20014 */ sw $v0, 0x14($sp)
/* 364380 E0062080 24040200 */ addiu $a0, $zero, 0x200
/* 364384 E0062084 24150008 */ addiu $s5, $zero, 8
/* 364388 E0062088 0040A02D */ daddu $s4, $v0, $zero
/* 36438C E006208C 0C08012C */ jal shim_general_heap_malloc
/* 364390 E0062090 AE950008 */ sw $s5, 8($s4)
/* 364394 E0062094 0040802D */ daddu $s0, $v0, $zero
/* 364398 E0062098 16000003 */ bnez $s0, .LE00620A8
/* 36439C E006209C AE90000C */ sw $s0, 0xc($s4)
.LE00620A0:
/* 3643A0 E00620A0 08018828 */ j .LE00620A0
/* 3643A4 E00620A4 00000000 */ nop
.LE00620A8:
/* 3643A8 E00620A8 0200202D */ daddu $a0, $s0, $zero
/* 3643AC E00620AC 0C080130 */ jal shim_mem_clear
/* 3643B0 E00620B0 00152980 */ sll $a1, $s5, 6
/* 3643B4 E00620B4 2402001E */ addiu $v0, $zero, 0x1e
/* 3643B8 E00620B8 AE020024 */ sw $v0, 0x24($s0)
/* 3643BC E00620BC 240200FF */ addiu $v0, $zero, 0xff
/* 3643C0 E00620C0 AE000028 */ sw $zero, 0x28($s0)
/* 3643C4 E00620C4 A6110000 */ sh $s1, ($s0)
/* 3643C8 E00620C8 E6140004 */ swc1 $f20, 4($s0)
/* 3643CC E00620CC E6160008 */ swc1 $f22, 8($s0)
/* 3643D0 E00620D0 E618000C */ swc1 $f24, 0xc($s0)
/* 3643D4 E00620D4 16200009 */ bnez $s1, .LE00620FC
/* 3643D8 E00620D8 AE020034 */ sw $v0, 0x34($s0)
/* 3643DC E00620DC 24020014 */ addiu $v0, $zero, 0x14
/* 3643E0 E00620E0 A202003B */ sb $v0, 0x3b($s0)
/* 3643E4 E00620E4 A2020038 */ sb $v0, 0x38($s0)
/* 3643E8 E00620E8 24020015 */ addiu $v0, $zero, 0x15
/* 3643EC E00620EC A202003C */ sb $v0, 0x3c($s0)
/* 3643F0 E00620F0 A2020039 */ sb $v0, 0x39($s0)
/* 3643F4 E00620F4 08018846 */ j .LE0062118
/* 3643F8 E00620F8 240200F2 */ addiu $v0, $zero, 0xf2
.LE00620FC:
/* 3643FC E00620FC 240200C8 */ addiu $v0, $zero, 0xc8
/* 364400 E0062100 A202003B */ sb $v0, 0x3b($s0)
/* 364404 E0062104 A2020038 */ sb $v0, 0x38($s0)
/* 364408 E0062108 24020015 */ addiu $v0, $zero, 0x15
/* 36440C E006210C A202003C */ sb $v0, 0x3c($s0)
/* 364410 E0062110 A2020039 */ sb $v0, 0x39($s0)
/* 364414 E0062114 240200D4 */ addiu $v0, $zero, 0xd4
.LE0062118:
/* 364418 E0062118 A202003D */ sb $v0, 0x3d($s0)
/* 36441C E006211C A202003A */ sb $v0, 0x3a($s0)
/* 364420 E0062120 24120001 */ addiu $s2, $zero, 1
/* 364424 E0062124 0255102A */ slt $v0, $s2, $s5
/* 364428 E0062128 1040002C */ beqz $v0, .LE00621DC
/* 36442C E006212C 26100040 */ addiu $s0, $s0, 0x40
/* 364430 E0062130 26B3FFFF */ addiu $s3, $s5, -1
/* 364434 E0062134 2610002C */ addiu $s0, $s0, 0x2c
/* 364438 E0062138 0000882D */ daddu $s1, $zero, $zero
/* 36443C E006213C 3C013F80 */ lui $at, 0x3f80
/* 364440 E0062140 4481E000 */ mtc1 $at, $f28
/* 364444 E0062144 3C0142B4 */ lui $at, 0x42b4
/* 364448 E0062148 4481D000 */ mtc1 $at, $f26
/* 36444C E006214C 3C013DCC */ lui $at, 0x3dcc
/* 364450 E0062150 3421CCCD */ ori $at, $at, 0xcccd
/* 364454 E0062154 4481C000 */ mtc1 $at, $f24
.LE0062158:
/* 364458 E0062158 16600002 */ bnez $s3, .LE0062164
/* 36445C E006215C 0233001A */ div $zero, $s1, $s3
/* 364460 E0062160 0007000D */ break 7
.LE0062164:
/* 364464 E0062164 2401FFFF */ addiu $at, $zero, -1
/* 364468 E0062168 16610004 */ bne $s3, $at, .LE006217C
/* 36446C E006216C 3C018000 */ lui $at, 0x8000
/* 364470 E0062170 16210002 */ bne $s1, $at, .LE006217C
/* 364474 E0062174 00000000 */ nop
/* 364478 E0062178 0006000D */ break 6
.LE006217C:
/* 36447C E006217C 00001012 */ mflo $v0
/* 364480 E0062180 4482B000 */ mtc1 $v0, $f22
/* 364484 E0062184 00000000 */ nop
/* 364488 E0062188 4680B5A0 */ cvt.s.w $f22, $f22
/* 36448C E006218C 461AB500 */ add.s $f20, $f22, $f26
/* 364490 E0062190 26310168 */ addiu $s1, $s1, 0x168
/* 364494 E0062194 26520001 */ addiu $s2, $s2, 1
/* 364498 E0062198 0C080144 */ jal shim_cos_deg
/* 36449C E006219C 4600A306 */ mov.s $f12, $f20
/* 3644A0 E00621A0 4600A306 */ mov.s $f12, $f20
/* 3644A4 E00621A4 0C080140 */ jal shim_sin_deg
/* 3644A8 E00621A8 E600FFD8 */ swc1 $f0, -0x28($s0)
/* 3644AC E00621AC E600FFDC */ swc1 $f0, -0x24($s0)
/* 3644B0 E00621B0 AE00FFE0 */ sw $zero, -0x20($s0)
/* 3644B4 E00621B4 AE00FFE4 */ sw $zero, -0x1c($s0)
/* 3644B8 E00621B8 AE00FFE8 */ sw $zero, -0x18($s0)
/* 3644BC E00621BC AE00FFEC */ sw $zero, -0x14($s0)
/* 3644C0 E00621C0 E618FFF0 */ swc1 $f24, -0x10($s0)
/* 3644C4 E00621C4 E618FFF4 */ swc1 $f24, -0xc($s0)
/* 3644C8 E00621C8 E61C0004 */ swc1 $f28, 4($s0)
/* 3644CC E00621CC E6160000 */ swc1 $f22, ($s0)
/* 3644D0 E00621D0 0255102A */ slt $v0, $s2, $s5
/* 3644D4 E00621D4 1440FFE0 */ bnez $v0, .LE0062158
/* 3644D8 E00621D8 26100040 */ addiu $s0, $s0, 0x40
.LE00621DC:
/* 3644DC E00621DC 0280102D */ daddu $v0, $s4, $zero
/* 3644E0 E00621E0 8FBF0040 */ lw $ra, 0x40($sp)
/* 3644E4 E00621E4 8FB5003C */ lw $s5, 0x3c($sp)
/* 3644E8 E00621E8 8FB40038 */ lw $s4, 0x38($sp)
/* 3644EC E00621EC 8FB30034 */ lw $s3, 0x34($sp)
/* 3644F0 E00621F0 8FB20030 */ lw $s2, 0x30($sp)
/* 3644F4 E00621F4 8FB1002C */ lw $s1, 0x2c($sp)
/* 3644F8 E00621F8 8FB00028 */ lw $s0, 0x28($sp)
/* 3644FC E00621FC D7BC0068 */ ldc1 $f28, 0x68($sp)
/* 364500 E0062200 D7BA0060 */ ldc1 $f26, 0x60($sp)
/* 364504 E0062204 D7B80058 */ ldc1 $f24, 0x58($sp)
/* 364508 E0062208 D7B60050 */ ldc1 $f22, 0x50($sp)
/* 36450C E006220C D7B40048 */ ldc1 $f20, 0x48($sp)
/* 364510 E0062210 03E00008 */ jr $ra
/* 364514 E0062214 27BD0070 */ addiu $sp, $sp, 0x70

View File

@ -1,172 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel debuff_update
/* 364520 E0062220 27BDFFC0 */ addiu $sp, $sp, -0x40
/* 364524 E0062224 AFB3001C */ sw $s3, 0x1c($sp)
/* 364528 E0062228 0080982D */ daddu $s3, $a0, $zero
/* 36452C E006222C AFBF0020 */ sw $ra, 0x20($sp)
/* 364530 E0062230 AFB20018 */ sw $s2, 0x18($sp)
/* 364534 E0062234 AFB10014 */ sw $s1, 0x14($sp)
/* 364538 E0062238 AFB00010 */ sw $s0, 0x10($sp)
/* 36453C E006223C F7B80038 */ sdc1 $f24, 0x38($sp)
/* 364540 E0062240 F7B60030 */ sdc1 $f22, 0x30($sp)
/* 364544 E0062244 F7B40028 */ sdc1 $f20, 0x28($sp)
/* 364548 E0062248 8E64000C */ lw $a0, 0xc($s3)
/* 36454C E006224C 8C820028 */ lw $v0, 0x28($a0)
/* 364550 E0062250 8C830024 */ lw $v1, 0x24($a0)
/* 364554 E0062254 24420001 */ addiu $v0, $v0, 1
/* 364558 E0062258 2463FFFF */ addiu $v1, $v1, -1
/* 36455C E006225C AC820028 */ sw $v0, 0x28($a0)
/* 364560 E0062260 04610005 */ bgez $v1, .LE0062278
/* 364564 E0062264 AC830024 */ sw $v1, 0x24($a0)
/* 364568 E0062268 0C080128 */ jal shim_remove_effect
/* 36456C E006226C 0260202D */ daddu $a0, $s3, $zero
/* 364570 E0062270 08018920 */ j .LE0062480
/* 364574 E0062274 00000000 */ nop
.LE0062278:
/* 364578 E0062278 8C920028 */ lw $s2, 0x28($a0)
/* 36457C E006227C 2A42000B */ slti $v0, $s2, 0xb
/* 364580 E0062280 14400009 */ bnez $v0, .LE00622A8
/* 364584 E0062284 00000000 */ nop
/* 364588 E0062288 3C01E006 */ lui $at, %hi(D_E00628D0)
/* 36458C E006228C D42228D0 */ ldc1 $f2, %lo(D_E00628D0)($at)
/* 364590 E0062290 C4800034 */ lwc1 $f0, 0x34($a0)
/* 364594 E0062294 46800021 */ cvt.d.w $f0, $f0
/* 364598 E0062298 46220002 */ mul.d $f0, $f0, $f2
/* 36459C E006229C 00000000 */ nop
/* 3645A0 E00622A0 4620038D */ trunc.w.d $f14, $f0
/* 3645A4 E00622A4 E48E0034 */ swc1 $f14, 0x34($a0)
.LE00622A8:
/* 3645A8 E00622A8 8E620008 */ lw $v0, 8($s3)
/* 3645AC E00622AC 24110001 */ addiu $s1, $zero, 1
/* 3645B0 E00622B0 0222102A */ slt $v0, $s1, $v0
/* 3645B4 E00622B4 10400072 */ beqz $v0, .LE0062480
/* 3645B8 E00622B8 24840040 */ addiu $a0, $a0, 0x40
/* 3645BC E00622BC 24900008 */ addiu $s0, $a0, 8
/* 3645C0 E00622C0 3C01E006 */ lui $at, %hi(D_E00628D8)
/* 3645C4 E00622C4 D43428D8 */ ldc1 $f20, %lo(D_E00628D8)($at)
/* 3645C8 E00622C8 3C01E006 */ lui $at, %hi(D_E00628E0)
/* 3645CC E00622CC D43628E0 */ ldc1 $f22, %lo(D_E00628E0)($at)
/* 3645D0 E00622D0 3C0142B4 */ lui $at, 0x42b4
/* 3645D4 E00622D4 4481C000 */ mtc1 $at, $f24
.LE00622D8:
/* 3645D8 E00622D8 2A42000B */ slti $v0, $s2, 0xb
/* 3645DC E00622DC 1440002B */ bnez $v0, .LE006238C
/* 3645E0 E00622E0 2A42000A */ slti $v0, $s2, 0xa
/* 3645E4 E00622E4 C60A0014 */ lwc1 $f10, 0x14($s0)
/* 3645E8 E00622E8 3C013FF0 */ lui $at, 0x3ff0
/* 3645EC E00622EC 44816800 */ mtc1 $at, $f13
/* 3645F0 E00622F0 44806000 */ mtc1 $zero, $f12
/* 3645F4 E00622F4 460052A1 */ cvt.d.s $f10, $f10
/* 3645F8 E00622F8 462A6301 */ sub.d $f12, $f12, $f10
/* 3645FC E00622FC 46346302 */ mul.d $f12, $f12, $f20
/* 364600 E0062300 00000000 */ nop
/* 364604 E0062304 C6080018 */ lwc1 $f8, 0x18($s0)
/* 364608 E0062308 3C014019 */ lui $at, 0x4019
/* 36460C E006230C 3421999A */ ori $at, $at, 0x999a
/* 364610 E0062310 44812000 */ mtc1 $at, $f4
/* 364614 E0062314 00000000 */ nop
/* 364618 E0062318 46082101 */ sub.s $f4, $f4, $f8
/* 36461C E006231C 46002121 */ cvt.d.s $f4, $f4
/* 364620 E0062320 46342102 */ mul.d $f4, $f4, $f20
/* 364624 E0062324 00000000 */ nop
/* 364628 E0062328 C6060028 */ lwc1 $f6, 0x28($s0)
/* 36462C E006232C 3C0142C8 */ lui $at, 0x42c8
/* 364630 E0062330 44811000 */ mtc1 $at, $f2
/* 364634 E0062334 00000000 */ nop
/* 364638 E0062338 46061081 */ sub.s $f2, $f2, $f6
/* 36463C E006233C 3C01E006 */ lui $at, %hi(D_E00628E8)
/* 364640 E0062340 D42028E8 */ ldc1 $f0, %lo(D_E00628E8)($at)
/* 364644 E0062344 460010A1 */ cvt.d.s $f2, $f2
/* 364648 E0062348 46201082 */ mul.d $f2, $f2, $f0
/* 36464C E006234C 00000000 */ nop
/* 364650 E0062350 3C01E006 */ lui $at, %hi(D_E00628F0)
/* 364654 E0062354 D42028F0 */ ldc1 $f0, %lo(D_E00628F0)($at)
/* 364658 E0062358 46201082 */ mul.d $f2, $f2, $f0
/* 36465C E006235C 00000000 */ nop
/* 364660 E0062360 462C5280 */ add.d $f10, $f10, $f12
/* 364664 E0062364 46004221 */ cvt.d.s $f8, $f8
/* 364668 E0062368 46244200 */ add.d $f8, $f8, $f4
/* 36466C E006236C 460031A1 */ cvt.d.s $f6, $f6
/* 364670 E0062370 462052A0 */ cvt.s.d $f10, $f10
/* 364674 E0062374 46204220 */ cvt.s.d $f8, $f8
/* 364678 E0062378 46223180 */ add.d $f6, $f6, $f2
/* 36467C E006237C E60A0014 */ swc1 $f10, 0x14($s0)
/* 364680 E0062380 E6080018 */ swc1 $f8, 0x18($s0)
/* 364684 E0062384 462031A0 */ cvt.s.d $f6, $f6
/* 364688 E0062388 E6060028 */ swc1 $f6, 0x28($s0)
.LE006238C:
/* 36468C E006238C 10400029 */ beqz $v0, .LE0062434
/* 364690 E0062390 00000000 */ nop
/* 364694 E0062394 C60C0014 */ lwc1 $f12, 0x14($s0)
/* 364698 E0062398 3C0140E0 */ lui $at, 0x40e0
/* 36469C E006239C 44814000 */ mtc1 $at, $f8
/* 3646A0 E00623A0 00000000 */ nop
/* 3646A4 E00623A4 460C4201 */ sub.s $f8, $f8, $f12
/* 3646A8 E00623A8 46004221 */ cvt.d.s $f8, $f8
/* 3646AC E00623AC 46364202 */ mul.d $f8, $f8, $f22
/* 3646B0 E00623B0 00000000 */ nop
/* 3646B4 E00623B4 C60A0018 */ lwc1 $f10, 0x18($s0)
/* 3646B8 E00623B8 3C013F80 */ lui $at, 0x3f80
/* 3646BC E00623BC 44812000 */ mtc1 $at, $f4
/* 3646C0 E00623C0 00000000 */ nop
/* 3646C4 E00623C4 460A2101 */ sub.s $f4, $f4, $f10
/* 3646C8 E00623C8 46002121 */ cvt.d.s $f4, $f4
/* 3646CC E00623CC 46342102 */ mul.d $f4, $f4, $f20
/* 3646D0 E00623D0 00000000 */ nop
/* 3646D4 E00623D4 C6060028 */ lwc1 $f6, 0x28($s0)
/* 3646D8 E00623D8 3C014120 */ lui $at, 0x4120
/* 3646DC E00623DC 44811000 */ mtc1 $at, $f2
/* 3646E0 E00623E0 00000000 */ nop
/* 3646E4 E00623E4 46061081 */ sub.s $f2, $f2, $f6
/* 3646E8 E00623E8 460010A1 */ cvt.d.s $f2, $f2
/* 3646EC E00623EC 46361082 */ mul.d $f2, $f2, $f22
/* 3646F0 E00623F0 00000000 */ nop
/* 3646F4 E00623F4 3C01E006 */ lui $at, %hi(D_E00628F8)
/* 3646F8 E00623F8 D42028F8 */ ldc1 $f0, %lo(D_E00628F8)($at)
/* 3646FC E00623FC 46201082 */ mul.d $f2, $f2, $f0
/* 364700 E0062400 00000000 */ nop
/* 364704 E0062404 46006321 */ cvt.d.s $f12, $f12
/* 364708 E0062408 46286300 */ add.d $f12, $f12, $f8
/* 36470C E006240C 460052A1 */ cvt.d.s $f10, $f10
/* 364710 E0062410 46245280 */ add.d $f10, $f10, $f4
/* 364714 E0062414 460031A1 */ cvt.d.s $f6, $f6
/* 364718 E0062418 46206320 */ cvt.s.d $f12, $f12
/* 36471C E006241C 462052A0 */ cvt.s.d $f10, $f10
/* 364720 E0062420 46223180 */ add.d $f6, $f6, $f2
/* 364724 E0062424 E60C0014 */ swc1 $f12, 0x14($s0)
/* 364728 E0062428 E60A0018 */ swc1 $f10, 0x18($s0)
/* 36472C E006242C 462031A0 */ cvt.s.d $f6, $f6
/* 364730 E0062430 E6060028 */ swc1 $f6, 0x28($s0)
.LE0062434:
/* 364734 E0062434 C60C0024 */ lwc1 $f12, 0x24($s0)
/* 364738 E0062438 0C080144 */ jal shim_cos_deg
/* 36473C E006243C 46186300 */ add.s $f12, $f12, $f24
/* 364740 E0062440 C6020028 */ lwc1 $f2, 0x28($s0)
/* 364744 E0062444 46020002 */ mul.s $f0, $f0, $f2
/* 364748 E0062448 00000000 */ nop
/* 36474C E006244C C60C0024 */ lwc1 $f12, 0x24($s0)
/* 364750 E0062450 46186300 */ add.s $f12, $f12, $f24
/* 364754 E0062454 0C080140 */ jal shim_sin_deg
/* 364758 E0062458 E600FFFC */ swc1 $f0, -4($s0)
/* 36475C E006245C C6020028 */ lwc1 $f2, 0x28($s0)
/* 364760 E0062460 46020002 */ mul.s $f0, $f0, $f2
/* 364764 E0062464 00000000 */ nop
/* 364768 E0062468 26310001 */ addiu $s1, $s1, 1
/* 36476C E006246C E6000000 */ swc1 $f0, ($s0)
/* 364770 E0062470 8E620008 */ lw $v0, 8($s3)
/* 364774 E0062474 0222102A */ slt $v0, $s1, $v0
/* 364778 E0062478 1440FF97 */ bnez $v0, .LE00622D8
/* 36477C E006247C 26100040 */ addiu $s0, $s0, 0x40
.LE0062480:
/* 364780 E0062480 8FBF0020 */ lw $ra, 0x20($sp)
/* 364784 E0062484 8FB3001C */ lw $s3, 0x1c($sp)
/* 364788 E0062488 8FB20018 */ lw $s2, 0x18($sp)
/* 36478C E006248C 8FB10014 */ lw $s1, 0x14($sp)
/* 364790 E0062490 8FB00010 */ lw $s0, 0x10($sp)
/* 364794 E0062494 D7B80038 */ ldc1 $f24, 0x38($sp)
/* 364798 E0062498 D7B60030 */ ldc1 $f22, 0x30($sp)
/* 36479C E006249C D7B40028 */ ldc1 $f20, 0x28($sp)
/* 3647A0 E00624A0 03E00008 */ jr $ra
/* 3647A4 E00624A4 27BD0040 */ addiu $sp, $sp, 0x40

View File

@ -2603,7 +2603,7 @@ segments:
vram: 0xE0062000
subsegments:
- [0x364300, c, debuff]
- [0x364BC0, data]
- [0x364BC0]
- [0x364C00, bin] # debuff gfx
- name: effect_green_impact
dir: effects

View File

@ -125,6 +125,10 @@ D_090024A8 = 0x090024A8;
D_09002550 = 0x09002550;
D_09002578 = 0x09002578;
// effect 31 (debuff)
D_09000240 = 0x09000240;
D_090002E8 = 0x090002E8;
// effect_73
D_090002C0 = 0x090002C0;
D_09000330 = 0x09000330;