match raycast functions (#620)

* npc_raycast_down

* npc_raycast_down_ahead

* npc_raycast_down_sides

* npc_raycast_up

* npc_raycast_up_corner

* npc_raycast_up_corners

* npc_test_move_complex_with_slipping

* player_raycast_down

* player_raycast_up_corners

* decomp 3 funcs

* player_test_move_without_slipping

* player_test_move_with_slipping

* match player_test_move_with_slipping

* clean up code

* fix param names

* remove space

Co-authored-by: Alex Bates <hi@imalex.xyz>

Co-authored-by: Alex Bates <hi@imalex.xyz>
This commit is contained in:
Unnunu 2022-01-14 21:09:45 +03:00 committed by GitHub
parent 36e5315fdc
commit 5f05525446
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
35 changed files with 950 additions and 2457 deletions

View File

@ -8,6 +8,7 @@
#include "stdlib/stdarg.h"
f32 fabsf(f32 f);
f64 fabs(f64 f);
f32 cosine(s16 arg0);
s32 strcmp(const char* str1, const char* str2);
@ -200,7 +201,7 @@ s32 phys_can_player_interact(void);
void ai_enemy_play_sound(Npc* npc, s32 arg1, s32 arg2);
s32 player_test_move_without_slipping(PlayerStatus*, f32*, f32*, f32*, s32, f32, s32*);
s32 player_test_move_without_slipping(PlayerStatus*, f32*, f32*, f32*, f32, f32, s32*);
s32 player_test_move_with_slipping(PlayerStatus* playerStatus, f32* posX, f32* posY, f32* posZ, f32 speed, f32 heading);
s32 evt_get_variable(Evt* script, Bytecode var);
@ -272,7 +273,7 @@ s32 pause_get_total_equipped_bp_cost(void);
s32 pause_get_menu_msg(s32 index);
void pause_sort_item_list(s16* arr, s32 len, s32 (*compare)(s16*, s16 *));
s32 npc_raycast_down_ahead(s32, f32*, f32*, f32*, f32*, f32, f32);
s32 npc_raycast_down_around(s32, f32*, f32*, f32*, f32*, f32, f32);
s32 npc_raycast_down_sides(s32, f32*, f32*, f32*, f32*);
s32 player_raycast_below_cam_relative(PlayerStatus*, f32*, f32*, f32*, f32*, f32*, f32*, f32*, f32*);
s32 npc_test_move_taller_with_slipping(s32, f32*, f32*, f32*, f32, f32, f32, f32);

View File

@ -1,19 +1,444 @@
#include "common.h"
extern s32 D_8010C94C;
extern s32 D_8010C968;
extern s32 D_8010C970;
extern s32 D_8010C974;
extern s32 D_8010C98C;
PlayerStatus* gPlayerStatusPtr = &gPlayerStatus; // maybe wPlayerStatus
INCLUDE_ASM(s32, "759b0_len_61b0", npc_raycast_down);
s32 npc_raycast_down(s32 ignoreFlags, f32* startX, f32* startY, f32* startZ, f32* hitDepth) {
f32 cHitX;
f32 cHitY;
f32 cHitZ;
f32 cHitDepth;
f32 cHitNx;
f32 cHitNy;
f32 cHitNz;
f32 eHitX;
f32 eHitY;
f32 eHitZ;
f32 eHitDepth;
f32 eHitNx;
f32 eHitNy;
f32 eHitNz;
s32 entityID;
s32 colliderID;
f32 sx, sy, sz;
INCLUDE_ASM(s32, "759b0_len_61b0", npc_raycast_down_ahead, s32, f32*, f32*, f32*, f32*, f32, f32);
eHitDepth = cHitDepth = fabsf(*hitDepth);
sx = *startX;
sy = *startY;
sz = *startZ;
colliderID = test_ray_colliders(ignoreFlags, sx, sy, sz, 0.0f, -1.0f, 0.0f, &cHitX, &cHitY, &cHitZ, &cHitDepth, &cHitNx, &cHitNy, &cHitNz);
if ((ignoreFlags & 0x40000) == 0) {
entityID = test_ray_entities(*startX, *startY, *startZ, 0.0f, -1.0f, 0.0f, &eHitX, &eHitY, &eHitZ, &eHitDepth, &eHitNx, &eHitNy, &eHitNz);
if (entityID >= 0) {
colliderID = entityID | 0x4000;
if (eHitDepth < cHitDepth) {
cHitDepth = eHitDepth;
cHitX = eHitX;
cHitY = eHitY;
cHitZ = eHitZ;
cHitNx = eHitNx;
cHitNy = eHitNy;
cHitNz = eHitNz;
}
}
if (colliderID < 0) {
return colliderID;
}
}
INCLUDE_ASM(s32, "759b0_len_61b0", npc_raycast_down_sides, s32 arg0, f32* arg1, f32* arg2, f32* arg3, f32* arg4);
*hitDepth = cHitDepth;
*startX = cHitX;
*startY = cHitY;
*startZ = cHitZ;
INCLUDE_ASM(s32, "759b0_len_61b0", npc_raycast_up);
if (colliderID < 0) {
return colliderID;
}
s32 npc_raycast_up_corner(s32 ignoreFlags, f32* x, f32* y, f32* z, f32* length);
INCLUDE_ASM(s32, "759b0_len_61b0", npc_raycast_up_corner, s32 ignoreFlags, f32* x, f32* y, f32* z, f32* length);
gGameStatusPtr->playerGroundTraceNormal.x = cHitNx;
gGameStatusPtr->playerGroundTraceNormal.y = cHitNy;
gGameStatusPtr->playerGroundTraceNormal.z = cHitNz;
gGameStatusPtr->playerGroundTraceAngles.x = -atan2(0.0f, 0.0f, cHitNz * 100.0f, cHitNy * 100.0f);
gGameStatusPtr->playerGroundTraceAngles.y = 0.0f;
gGameStatusPtr->playerGroundTraceAngles.z = -atan2(0.0f, 0.0f, cHitNx * 100.0f, cHitNy * 100.0f);
INCLUDE_ASM(s32, "759b0_len_61b0", npc_raycast_up_corners);
return colliderID;
}
s32 npc_raycast_down_around(s32 ignoreFlags, f32* posX, f32* posY, f32* posZ, f32* hitDepth, f32 yaw, f32 radius) {
f32 startX;
f32 startY;
f32 startZ;
f32 depth;
f32 x;
f32 y;
f32 z;
f32 originalDepth;
f32 hitYBehindLeft;
s32 hasCollision;
f32 cosTheta;
s32 colliderID;
f32 deltaX,deltaZ;
f32 theta, sinTheta, minDepth, hitYAhead, hitYBehindRight;
hasCollision = FALSE;
x = *posX;
y = *posY;
z = *posZ;
D_8010C970 = y;
D_8010C94C = *posY;
D_8010C974 = *posY;
radius /= 2.5;
hitYBehindLeft = hitYBehindRight = hitYAhead = -32767.0f;
minDepth = fabsf(*hitDepth);
theta = clamp_angle(yaw + 0.0f) * TAU / 360.0f;
sinTheta = sin_rad(theta);
cosTheta = cos_rad(theta);
deltaX = radius * sinTheta;
deltaZ = -radius * cosTheta;
startX = x + deltaX;
startY = y;
startZ = z + deltaZ;
originalDepth = depth = minDepth;
colliderID = npc_raycast_down(ignoreFlags, &startX, &startY, &startZ, &depth);
if (colliderID >= 0) {
if (depth <= minDepth) {
hitYAhead = startY;
D_8010C978 = colliderID;
D_8010C98C = colliderID;
D_8010C970 = hitYAhead;
minDepth = depth;
hasCollision = TRUE;
}
}
theta = clamp_angle(yaw + 120.0f) * TAU / 360.0f;
sinTheta = sin_rad(theta);
cosTheta = cos_rad(theta);
deltaX = radius * sinTheta;
deltaZ = -radius * cosTheta;
startX = x + deltaX;
startY = y;
startZ = z + deltaZ;
depth = originalDepth;
colliderID = npc_raycast_down(ignoreFlags, &startX, &startY, &startZ, &depth);
if (colliderID >= 0) {
if (depth <= minDepth) {
hitYBehindRight = startY;
D_8010C978 = colliderID;
D_8010C968 = colliderID;
D_8010C94C = hitYBehindRight;
minDepth = depth;
hasCollision = TRUE;
}
}
theta = clamp_angle(yaw - 120.0f) * TAU / 360.0f;
sinTheta = sin_rad(theta);
cosTheta = cos_rad(theta);
deltaX = radius * sinTheta;
deltaZ = -radius * cosTheta;
startX = x + deltaX;
startY = y;
startZ = z + deltaZ;
depth = originalDepth;
colliderID = npc_raycast_down(ignoreFlags, &startX, &startY, &startZ, &depth);
if (colliderID >= 0) {
if (depth <= minDepth) {
hitYBehindLeft = startY;
D_8010C978 = colliderID;
D_8010C968 = colliderID;
D_8010C974 = hitYBehindLeft;
minDepth = depth;
hasCollision = TRUE;
}
}
if (hasCollision) {
*posY = MAX(hitYBehindRight, hitYAhead);
if (*posY < hitYBehindLeft) {
*posY = hitYBehindLeft;
}
*hitDepth = minDepth;
return TRUE;
}
*posY = startY;
return FALSE;
}
s32 npc_raycast_down_sides(s32 ignoreFlags, f32* posX, f32* posY, f32* posZ, f32* hitDepth) {
f32 startX;
f32 startY;
f32 startZ;
f32 depth;
f32 x;
f32 y;
f32 z;
f32 originalDepth;
f32 hitYUnused;
s32 hasCollision;
f32 cosTheta;
s32 colliderID;
f32 deltaX,deltaZ;
f32 yaw;
f32 theta, sinTheta, minDepth, hitYAhead, hitYBehind, radius;
hasCollision = FALSE;
x = *posX;
y = *posY;
z = *posZ;
D_8010C970 = y;
D_8010C94C = *posY;
D_8010C974 = *posY;
hitYUnused = hitYBehind = hitYAhead = -32767.0f;
yaw = 0.0f;
minDepth = fabsf(*hitDepth);
theta = clamp_angle(yaw) * TAU / 360.0f;
sinTheta = sin_rad(theta);
cosTheta = cos_rad(theta);
radius = 10.0f;
deltaX = radius * sinTheta;
deltaZ = -radius * cosTheta;
startX = x + deltaX;
startY = y;
startZ = z + deltaZ;
originalDepth = depth = minDepth;
colliderID = npc_raycast_down(ignoreFlags, &startX, &startY, &startZ, &depth);
if (colliderID >= 0) {
if (depth <= minDepth) {
hitYAhead = startY;
D_8010C978 = colliderID;
D_8010C98C = colliderID;
D_8010C970 = hitYAhead;
minDepth = depth;
hasCollision = TRUE;
}
}
theta = clamp_angle(yaw + 180.0f) * TAU / 360.0f;
sinTheta = sin_rad(theta);
cosTheta = cos_rad(theta);
deltaX = radius * sinTheta;
deltaZ = -radius * cosTheta;
startX = x + deltaX;
startY = y;
startZ = z + deltaZ;
depth = originalDepth;
colliderID = npc_raycast_down(ignoreFlags, &startX, &startY, &startZ, &depth);
if (colliderID >= 0) {
if (depth <= minDepth) {
hitYBehind = startY;
D_8010C978 = colliderID;
D_8010C968 = colliderID;
D_8010C94C = hitYBehind;
minDepth = depth;
hasCollision = TRUE;
}
}
if (hasCollision) {
*posY = MAX(hitYBehind, hitYAhead);
if (*posY < hitYUnused) {
*posY = hitYUnused;
}
*hitDepth = minDepth;
return TRUE;
}
return FALSE;
}
s32 npc_raycast_up(s32 ignoreFlags, f32* startX, f32* startY, f32* startZ, f32* hitDepth) {
f32 cHitX;
f32 cHitY;
f32 cHitZ;
f32 cHitDepth;
f32 cHitNx;
f32 cHitNy;
f32 cHitNz;
f32 eHitX;
f32 eHitY;
f32 eHitZ;
f32 eHitDepth;
f32 eHitNx;
f32 eHitNy;
f32 eHitNz;
s32 entityID;
s32 colliderID;
f32 sx, sy, sz;
s32 ret;
eHitDepth = cHitDepth = *hitDepth;
sx = *startX;
sy = *startY;
sz = *startZ;
ret = test_ray_colliders(ignoreFlags, sx, sy, sz, 0.0f, 1.0f, 0.0f, &cHitX, &cHitY, &cHitZ, &cHitDepth, &cHitNx, &cHitNy, &cHitNz);
colliderID = ret;
if ((ignoreFlags & 0x40000) == 0) {
entityID = test_ray_entities(sx, sy, sz, 0.0f, 1.0f, 0.0f, &eHitX, &eHitY, &eHitZ, &eHitDepth, &eHitNx, &eHitNy, &eHitNz);
ret = entityID | 0x4000;
if (entityID >= 0) {
cHitDepth = eHitDepth;
cHitX = eHitX;
cHitY = eHitY;
cHitZ = eHitZ;
cHitNx = eHitNx;
cHitNy = eHitNy;
cHitNz = eHitNz;
} else {
ret = colliderID;
}
}
if (ret < 0) {
// TODO find better match
colliderID = 0;
return colliderID;
} else {
*hitDepth = cHitDepth;
*startX = cHitX;
*startY = cHitY;
*startZ = cHitZ;
D_8010C978 = ret;
return TRUE;
}
}
s32 npc_raycast_up_corner(s32 ignoreFlags, f32* x, f32* y, f32* z, f32* length) {
f32 hitX;
f32 hitY;
f32 hitZ;
f32 hitDepth;
f32 hitNx;
f32 hitNy;
f32 hitNz;
s32 colliderID;
s32 entityID;
f32 sx, sy, sz;
f32 sx2, sy2, sz2;
s32 ret = -1;
// needed to match
sx2 = sx = *x;
sy2 = sy = *y;
sz2 = sz = *z;
hitDepth = *length;
colliderID = test_ray_colliders(ignoreFlags, sx, sy, sz, 0.0f, 1.0f, 0.0f, &hitX, &hitY, &hitZ, &hitDepth, &hitNx, &hitNy, &hitNz);
if (colliderID >= 0 && *length > hitDepth) {
*length = hitDepth;
ret = colliderID;
*x = sx = sx2;
*y = sy = sy2;
*z = sz = sz2;
}
hitDepth = 10.0f;
entityID = test_ray_entities(*x, *y, *z, 0.0f, 1.0f, 0.0f, &hitX, &hitY, &hitZ, &hitDepth, &hitNx, &hitNy, &hitNz);
sx = sx2;
sy = sy2;
sz = sz2;
if (entityID >= 0 && *length > hitDepth) {
ret = entityID | 0x4000;
*length = hitDepth;
*x = sx;
*y = sy;
*z = sz;
}
return ret;
}
s32 npc_raycast_up_corners(s32 ignoreFlags, f32* posX, f32* posY, f32* posZ, f32* hitDepth, f32 yaw, f32 radius) {
f32 startX;
f32 startY;
f32 startZ;
f32 depth;
f32 theta;
f32 deltaZ;
f32 deltaX;
f32 x,y,z;
s32 ret;
s32 hitID;
f32 temp;
theta = (yaw * TAU) / 360.0f;
deltaX = radius * sin_rad(theta);
temp = -radius; // needed to match
deltaZ = temp * cos_rad(theta);
x = *posX;
y = *posY;
z = *posZ;
depth = *hitDepth;
startX = x + deltaX;
startY = y;
startZ = z + deltaZ;
ret = -1;
hitID = npc_raycast_up_corner(ignoreFlags, &startX, &startY, &startZ, &depth);
if (hitID < 0) {
startX = x - deltaX;
startY = y;
startZ = z - deltaZ;
hitID = npc_raycast_up_corner(ignoreFlags, &startX, &startY, &startZ, &depth);
}
if (hitID < 0) {
startX = x + deltaZ;
startY = y;
startZ = z + deltaX;
hitID = npc_raycast_up_corner(ignoreFlags, &startX, &startY, &startZ, &depth);
}
if (hitID < 0) {
startX = x - deltaZ;
startY = y;
startZ = z - deltaX;
hitID = npc_raycast_up_corner(ignoreFlags, &startX, &startY, &startZ, &depth);
}
if (hitID >= 0) {
*posX = startX;
*posY = startY;
*posZ = startZ;
*hitDepth = depth;
ret = hitID;
}
if (ret < 0) {
*posX = startX;
*posY = startY;
*posZ = startZ;
*hitDepth = 0;
}
return ret;
}
s32 npc_raycast_general(s32 ignoreFlags, f32 startX, f32 startY, f32 startZ, f32 dirX, f32 dirY, f32 dirZ, f32* hitX,
f32* hitY, f32* hitZ, f32* outDepth, f32* hitNx, f32* hitNy, f32* hitNz);
@ -21,8 +446,8 @@ s32 npc_raycast_general(s32 ignoreFlags, f32 startX, f32 startY, f32 startZ, f32
#ifdef NON_EQUIVALENT
s32 npc_raycast_general(s32 flags, f32 startX, f32 startY, f32 startZ, f32 dirX, f32 dirY, f32 dirZ, f32* hitX,
f32* hitY, f32* hitZ, f32* outDepth, f32* hitNx, f32* hitNy, f32* hitNz) {
s32 entityID;
s32 ret;
s32 entityID;
ret = -1;
if (flags & 0x100000) {
@ -57,7 +482,7 @@ void npc_get_slip_vector(f32* outX, f32* outZ, f32 aX, f32 aZ, f32 bX, f32 bZ) {
*outX = (aX - (dotProduct * bX)) * 0.5f;
*outZ = (aZ - (dotProduct * bZ)) * 0.5f;
}
s32 npc_test_move_with_slipping(s32 ignoreFlags, f32* x, f32* y, f32* z, f32 length, f32 yaw, f32 radius) {
f32 outX, outY;
f32 bX, bZ;
@ -140,7 +565,7 @@ s32 npc_test_move_without_slipping(s32 ignoreFlags, f32* x, f32* y, f32* z, f32
D_8010C978 = hitID;
ret = hitID;
}
*x += temp1;
*z += temp2;
return ret;
@ -195,5 +620,51 @@ s32 npc_test_move_simple_without_slipping(s32 ignoreFlags, f32* x, f32* y, f32*
return hitID >= 0;
}
s32 npc_test_move_complex_with_slipping(s32 ignoreFlags, f32* x, f32* y, f32* z, f32 length, f32 yaw, f32 height,
f32 radius) {
f32 startX;
f32 startY;
f32 startZ;
s32 ret = 0;
s32 hitID;
INCLUDE_ASM(s32, "759b0_len_61b0", npc_test_move_complex_with_slipping, s32, f32*, f32*, f32*, f32, f32, f32, f32);
radius *= 0.5f;
startX = *x;
startY = *y + height - 1.0f;
startZ = *z;
if (npc_test_move_with_slipping(ignoreFlags, &startX, &startY, &startZ, fabsf(length), yaw, radius) >= 0) {
*x = startX;
*z = startZ;
ret = 4;
}
startX = *x;
startY = *y + 20.0f;
startZ = *z;
if (npc_test_move_with_slipping(ignoreFlags, &startX, &startY, &startZ, fabsf(length), yaw, radius) >= 0) {
*x = startX;
*z = startZ;
ret = 3;
}
startX = *x;
startY = *y + 15.01f;
startZ = *z;
if (npc_test_move_with_slipping(ignoreFlags, &startX, &startY, &startZ, fabsf(length), yaw, radius) >= 0) {
*x = startX;
*z = startZ;
ret = 2;
}
startX = *x;
startY = *y + 10.01f;
startZ = *z;
hitID = npc_test_move_with_slipping(ignoreFlags, &startX, &startY, &startZ, fabsf(length), yaw, radius);
*x = startX;
*z = startZ;
if (hitID >= 0) {
ret = 1;
}
return ret;
}

View File

@ -63,6 +63,11 @@ void func_800EF3D4(s16);
void spr_draw_player_sprite(s32, s32, s32, s32, Matrix4f);
void func_802DDEE4(s32, s32, s32, s32, s32, s32, s32, s32);
void func_802DDFF8(u32, s32, s32, s32, s32, s32, s32);
f32 get_player_normal_pitch(void);
s32 player_raycast_up_corner(f32* x, f32* y, f32* z, f32* length);
void player_get_slip_vector(f32* outX, f32* outY, f32 x, f32 y, f32 nX, f32 nY);
s32 player_raycast_general(s32, f32, f32, f32, f32, f32, f32, f32*, f32*, f32*, f32*, f32*, f32*, f32*);
s32 player_raycast_below(f32 yaw, f32 diameter, f32* outX, f32* outY, f32* outZ, f32* outLength, f32* hitRx, f32* hitRz,
f32* hitDirX, f32* hitDirZ) {
@ -196,29 +201,416 @@ s32 player_raycast_below_cam_relative(PlayerStatus* playerStatus, f32* outX, f32
outX, outY, outZ, outLength, hitRx, hitRz, hitDirX, hitDirZ);
}
s32 player_raycast_down(f32* x, f32* y, f32* z, f32* length) {
f32 hitX;
f32 hitY;
f32 hitZ;
f32 hitDepth;
f32 hitNx;
f32 hitNy;
f32 hitNz;
s32 entityID, colliderID;
Entity* entity;
s32 ret = -1;
INCLUDE_ASM(void, "77480", player_raycast_down, f32*, f32*, f32*, f32*);
hitDepth = *length;
entityID = test_ray_entities(*x, *y, *z, 0.0f, -1.0f, 0.0f, &hitX, &hitY, &hitZ, &hitDepth, &hitNx, &hitNy, &hitNz);
if (entityID >= 0) {
entity = get_entity_by_index(entityID);
if (entity->alpha < 255) {
entity->unk_07 = 4;
entity->flags |= ENTITY_FLAGS_CONTINUOUS_COLLISION;
} else {
ret = entityID | 0x4000;
}
}
INCLUDE_ASM(s32, "77480", player_raycast_up_corners);
colliderID = test_ray_colliders(0x10000, *x, *y, *z, 0, -1.0f, 0, &hitX, &hitY, &hitZ, &hitDepth, &hitNx, &hitNy, &hitNz);
if (colliderID >= 0) {
ret = colliderID;
}
INCLUDE_ASM(s32, "77480", player_raycast_up_corner);
INCLUDE_ASM(s32, "77480", player_test_lateral_overlap, s32 arg0, PlayerStatus* arg1, f32* arg2, f32* arg3, f32* arg4,
f32 arg5, f32 arg6);
INCLUDE_ASM(s32, "77480", player_raycast_general);
INCLUDE_ASM(s32, "77480", player_test_move_without_slipping, PlayerStatus* arg0, f32* arg1, f32* arg2, f32* arg3, s32 arg4, f32 arg5,
s32* arg6);
void player_get_slip_vector(f32* arg0, f32* arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5) {
f32 temp = (arg2 * arg4) + (arg3 * arg5);
*arg0 = (arg2 - (temp * arg4)) * 0.5f;
*arg1 = (arg3 - (temp * arg5)) * 0.5f;
if (ret >= 0) {
*length = hitDepth;
*x = hitX;
*y = hitY;
*z = hitZ;
gGameStatusPtr->playerGroundTraceNormal.x = hitNx;
gGameStatusPtr->playerGroundTraceNormal.y = hitNy;
gGameStatusPtr->playerGroundTraceNormal.z = hitNz;
D_8010C938 = get_player_normal_yaw();
D_8010C990 = get_player_normal_pitch();
gGameStatusPtr->playerGroundTraceAngles.x = atan2(0.0f, 0.0f, hitNz * 100.0, hitNy * 100.0);
gGameStatusPtr->playerGroundTraceAngles.y = 0.0f;
gGameStatusPtr->playerGroundTraceAngles.z = atan2(0.0f, 0.0f, hitNx * 100.0, hitNy * 100.0);
} else {
gGameStatusPtr->playerGroundTraceAngles.x = 0.0f;
gGameStatusPtr->playerGroundTraceAngles.y = 0.0f;
gGameStatusPtr->playerGroundTraceAngles.z = 0.0f;
}
return ret;
}
INCLUDE_ASM(s32, "77480", player_test_move_with_slipping);
s32 player_raycast_up_corners(PlayerStatus* player, f32* posX, f32* posY, f32* posZ, f32* hitDepth, f32 yaw) {
f32 startX;
f32 startY;
f32 startZ;
f32 depth;
f32 theta;
f32 deltaZ;
f32 deltaX;
f32 x,y,z;
s32 ret;
s32 hitID;
f32 radius;
radius = player->colliderDiameter * 0.3f;
theta = yaw * TAU / 360.0f;
deltaX = radius * sin_rad(theta);
deltaZ = -radius * cos_rad(theta);
x = *posX;
y = *posY;
z = *posZ;
depth = *hitDepth;
startX = x + deltaX;
startY = y;
startZ = z + deltaZ;
ret = -1;
hitID = player_raycast_up_corner(&startX, &startY, &startZ, &depth);
if (hitID < 0) {
startX = x - deltaX;
startY = y;
startZ = z - deltaZ;
hitID = player_raycast_up_corner(&startX, &startY, &startZ, &depth);
}
if (hitID < 0) {
startX = x + deltaZ;
startY = y;
startZ = z + deltaX;
hitID = player_raycast_up_corner(&startX, &startY, &startZ, &depth);
}
if (hitID < 0) {
startX = x - deltaZ;
startY = y;
startZ = z - deltaX;
hitID = player_raycast_up_corner(&startX, &startY, &startZ, &depth);
}
if (hitID >= 0) {
*posX = startX;
*posY = startY;
*posZ = startZ;
*hitDepth = depth;
ret = hitID;
}
if (ret < 0) {
*posX = startX;
*posY = startY;
*posZ = startZ;
*hitDepth = 0;
}
return ret;
}
s32 player_raycast_up_corner(f32* x, f32* y, f32* z, f32* length) {
f32 hitX;
f32 hitY;
f32 hitZ;
f32 hitDepth;
f32 hitNx;
f32 hitNy;
f32 hitNz;
s32 hitID;
Entity* entity;
s32 ret;
f32 sx, sy, sz;
f32 sx2, sy2, sz2;
f32 startX, startY, startZ;
ret = -1;
// needed to match
sx2 = sx = *x;
sy2 = sy = *y;
sz2 = sz = *z;
hitDepth = *length;
hitID = test_ray_colliders(0x10000, sx, sy, sz, 0.0f, 1.0f, 0.0f, &hitX, &hitY, &hitZ, &hitDepth, &hitNx, &hitNy, &hitNz);
if (hitID >= 0 && *length > hitDepth) {
*length = hitDepth;
ret = hitID;
*x = sx = sx2;
*y = sy = sy2;
*z = sz = sz2;
}
hitDepth = 10.0f;
hitID = test_ray_entities(*x, *y, *z, 0.0f, 1.0f, 0.0f, &hitX, &hitY, &hitZ, &hitDepth, &hitNx, &hitNy, &hitNz);
sx = sx2;
sy = sy2;
sz = sz2;
if (hitID >= 0 && *length > hitDepth) {
get_entity_by_index(hitID);
ret = hitID | 0x4000;
*length = hitDepth;
*x = sx;
*y = sy;
*z = sz;
}
return ret;
}
s32 player_test_lateral_overlap(s32 mode, PlayerStatus* playerStatus, f32* x, f32* y, f32* z, f32 length, f32 yaw) {
f32 sinTheta;
f32 cosTheta;
f32 hitX;
f32 hitY;
f32 hitZ;
f32 hitDepth;
f32 hitNx;
f32 hitNy;
f32 hitNz;
f32 slipDx;
f32 slipDz;
f32 depthDiff;
f32 radius;
f32 originalDepth;
s32 hitID;
f32 height;
f32 targetDx;
f32 targetDz;
f32 dx;
f32 dz;
s32 ret;
radius = playerStatus->colliderDiameter * 0.5f;
ret = -1;
if ((playerStatus->flags & (PLAYER_STATUS_FLAGS_FALLING | PLAYER_STATUS_FLAGS_JUMPING)) == 0) {
height = playerStatus->colliderHeight * 0.286f;
} else {
height = 1.0f;
}
sin_cos_rad(yaw * TAU / 360.0f, &sinTheta, &cosTheta);
cosTheta = -cosTheta;
hitDepth = length + radius;
hitID = player_raycast_general(mode, *x, *y + height, *z, sinTheta, 0, cosTheta, &hitX, &hitY, &hitZ, &hitDepth, &hitNx, &hitNy, &hitNz);
if (mode == 3) {
targetDx = 0.0f;
targetDz = 0.0f;
} else {
targetDx = length * sinTheta;
targetDz = length * cosTheta;
}
if (hitID >= 0) {
originalDepth = length + radius;
if (hitDepth <= originalDepth) {
depthDiff = hitDepth - originalDepth;
dx = depthDiff * sinTheta;
dz = depthDiff * cosTheta;
player_get_slip_vector(&slipDx, &slipDz, targetDx, targetDz, hitNx, hitNz);
*x += dx + slipDx;
*z += dz + slipDz;
ret = hitID;
}
}
*x += targetDx;
*z += targetDz;
return ret;
}
s32 player_raycast_general(s32 mode, f32 startX, f32 startY, f32 startZ, f32 dirX, f32 dirY, f32 dirZ, f32* hitX,
f32* hitY, f32* hitZ, f32* hitDepth, f32*hitNx, f32* hitNy, f32* hitNz) {
f32 nAngleX;
f32 nAngleZ;
s32 entityID;
s32 colliderID;
Entity* entity;
s32 ignoreFlags;
s32 ret;
entityID = test_ray_entities(startX, startY, startZ, dirX, dirY, dirZ, hitX, hitY, hitZ, hitDepth, hitNx, hitNy,
hitNz);
ret = -1;
if (entityID >= 0) {
entity = get_entity_by_index(entityID);
if (entity->alpha < 255) {
entity->unk_07 = 0;
entity->flags |= ENTITY_FLAGS_CONTINUOUS_COLLISION;
} else {
ret = entityID | 0x4000;
}
} else if (mode == 3) {
ret = test_ray_colliders(0x8000, startX, startY, startZ, dirX, dirY, dirZ, hitX, hitY, hitZ, hitDepth,
hitNx, hitNy, hitNz);
}
if (mode == 1 || mode == 3)
return ret;
ignoreFlags = 0x10000;
if (mode == 4) {
ignoreFlags = 0x80000;
}
colliderID = test_ray_colliders(ignoreFlags, startX, startY, startZ, dirX, dirY, dirZ, hitX, hitY, hitZ, hitDepth,
hitNx, hitNy, hitNz);
if (ret < 0) {
ret = colliderID;
}
if (ret >= 0) {
nAngleZ = 180.0f - atan2(0, 0, *hitNz * 100.0, *hitNy * 100.0);
nAngleX = 180.0f - atan2(0, 0, *hitNx * 100.0, *hitNy * 100.0);
if (!(nAngleZ == 90.0f && nAngleX == 90.0f || fabs(nAngleZ) >= 30.0 || fabs(nAngleX) >= 30.0)) {
ret = -1;
}
}
return ret;
}
s32 player_test_move_without_slipping(PlayerStatus* playerStatus, f32* x, f32* y, f32* z, f32 length, f32 yaw, s32* arg6) {
f32 sinTheta;
f32 cosTheta;
f32 hitX;
f32 hitY;
f32 hitZ;
f32 hitDepth;
f32 hitNx;
f32 hitNy;
f32 hitNz;
f32 slipDx;
f32 slipDz;
f32 depth;
f32 radius;
f32 depthDiff;
f32 height;
s32 ret;
s32 raycastID;
f32 targetDx;
f32 targetDz;
f32 dx, dz;
radius = playerStatus->colliderDiameter * 0.5f;
height = playerStatus->colliderHeight * 0.286f;
sin_cos_rad(yaw * TAU / 360.0f, &sinTheta, &cosTheta);
depth = length + radius;
cosTheta = -cosTheta;
hitDepth = depth;
dx = radius * sinTheta;
ret = -1;
raycastID = player_raycast_general(0, *x, *y + 0.1, *z, sinTheta, 0, cosTheta, &hitX, &hitY, &hitZ, &hitDepth, &hitNx, &hitNy, &hitNz);
if (raycastID >= 0 && hitDepth <= depth) {
*arg6 = 1;
}
depth = length + radius;
hitDepth = depth;
dz = radius * cosTheta;
raycastID = player_raycast_general(0, *x, *y + height, *z, sinTheta, 0, cosTheta, &hitX, &hitY, &hitZ, &hitDepth, &hitNx, &hitNy, &hitNz);
targetDx = 0.0f;
targetDz = 0.0f;
if ((raycastID >= 0) && (hitDepth <= depth)) {
depthDiff = hitDepth - depth;
dx = depthDiff * sinTheta;
dz = depthDiff * cosTheta;
player_get_slip_vector(&slipDx, &slipDz, 0.0f, 0.0f, hitNx, hitNz);
*x += dx + slipDx;
*z += dz + slipDz;
ret = raycastID;
}
*x += targetDx;
*z += targetDz;
return ret;
}
void player_get_slip_vector(f32* outX, f32* outY, f32 x, f32 y, f32 nX, f32 nY) {
f32 projectionLength = (x * nX) + (y * nY);
*outX = (x - projectionLength * nX) * 0.5f;
*outY = (y - projectionLength * nY) * 0.5f;
}
s32 player_test_move_with_slipping(PlayerStatus* playerStatus, f32* x, f32* y, f32* z, f32 length, f32 yaw) {
f32 sinTheta;
f32 cosTheta;
f32 hitX;
f32 hitY;
f32 hitZ;
f32 hitDepth;
f32 hitNx;
f32 hitNy;
f32 hitNz;
f32 slipDx;
f32 slipDz;
f32 radius;
f32 height;
s32 hitID;
f32 targetDx, targetDz;
f32 dx, dz;
f32 depthDiff;
s32 ret = -1;
height = 0.0f;
if ((playerStatus->flags & (PLAYER_STATUS_FLAGS_JUMPING | PLAYER_STATUS_FLAGS_FALLING)) == 0) {
height = 10.01f;
}
radius = playerStatus->colliderDiameter * 0.5f;
sin_cos_rad(yaw * TAU / 360.0f, &sinTheta, &cosTheta);
cosTheta = -cosTheta;
hitDepth = length + radius;
targetDx = length * sinTheta;
targetDz = length * cosTheta;
hitID = player_raycast_general(0, *x, *y + height, *z, sinTheta, 0, cosTheta, &hitX, &hitY, &hitZ, &hitDepth, &hitNx, &hitNy, &hitNz);
if (hitID >= 0 && (depthDiff = hitDepth, depthDiff <= length + radius)) {
depthDiff -= (length + radius);
dx = depthDiff * sinTheta;
dz = depthDiff * cosTheta;
player_get_slip_vector(&slipDx, &slipDz, targetDx, targetDz, hitNx, hitNz);
*x += dx + slipDx;
*z += dz + slipDz;
ret = hitID;
} else {
height = playerStatus->colliderHeight * 0.75;
hitID = player_raycast_general(0, *x, *y + height, *z, sinTheta, 0, cosTheta, &hitX, &hitY, &hitZ, &hitDepth, &hitNx, &hitNy, &hitNz);
if (hitID >= 0 && (depthDiff = hitDepth, depthDiff <= length + radius)) {
depthDiff -= (length + radius);
dx = depthDiff * sinTheta;
dz = depthDiff * cosTheta;
player_get_slip_vector(&slipDx, &slipDz, targetDx, targetDz, hitNx, hitNz);
*x += dx + slipDx;
*z += dz + slipDz;
ret = hitID;
}
}
*x += targetDx;
*z += targetDz;
return ret;
}
void update_player(void) {
PlayerStatus* playerStatus = &gPlayerStatus;
@ -548,6 +940,7 @@ void check_for_ispy(void) {
D_8010C93C();
}
}
void func_800E0330(void) {
if ((gPlayerStatusPtr->animFlags & PLAYER_STATUS_ANIM_FLAGS_100) && (D_8010C93C != NULL)) {
func_802B7000_E225B0();
@ -641,6 +1034,8 @@ void func_800E06C0(s32 arg0) {
INCLUDE_ASM(s32, "77480", func_800E06D8);
static const f32 pad[1] = { 0.0f};
void check_for_interactables(void) {
PlayerStatus* playerStatus = &gPlayerStatus;
Npc* npc = gPlayerStatus.unk_C8;
@ -747,9 +1142,6 @@ void check_for_interactables(void) {
}
}
// TODO: Remove after func_800E24F8 is matching.
static const s32 pad[3] = { 0.0f, 0.0f, 0.0f };
void func_802B71E8_E202F8(void);
void func_800E0AD0(void) {
@ -802,7 +1194,7 @@ void render_player_model(void) {
if (!(playerStatus->flags & PLAYER_STATUS_FLAGS_20000)) {
if (playerStatus->alpha1 != playerStatus->alpha2) {
if (playerStatus->alpha1 < 254) {
if (!(playerStatus->animFlags & PLAYER_STATUS_ANIM_FLAGS_1000000)) {
renderModeTemp = RENDER_MODE_SURFACE_XLU_LAYER1;
} else {
@ -811,7 +1203,7 @@ void render_player_model(void) {
playerStatus->renderMode = renderModeTemp;
func_802DDEE4(0, -1, 7, 0, 0, 0, playerStatus->alpha1, 0);
} else {
playerStatus->renderMode = RENDER_MODE_ALPHATEST;
func_802DDEE4(0, -1, 0, 0, 0, 0, 0, 0);
@ -829,7 +1221,7 @@ void render_player_model(void) {
rtPtr->appendGfxArg = playerStatus;
rtPtr->distance = -z;
rtPtr->renderMode = playerStatus->renderMode;
if (!(playerStatus->flags & PLAYER_STATUS_ANIM_FLAGS_20000)) {
appendGfx = appendGfx_player;
@ -896,12 +1288,12 @@ void appendGfx_player(void* data) {
if (playerStatus->spriteFacingAngle >= 90.0f && playerStatus->spriteFacingAngle < 270.0f) {
phi_a0 = PLAYER_STATUS_ANIM_FLAGS_10000000;
}
spr_draw_player_sprite(phi_a0, 0, 0, 0, sp20);
}
D_800F7B4C++;
if (D_800F7B4C >= 3) {
D_800F7B4C = 0;
}

View File

@ -380,7 +380,7 @@ void npc_do_gravity(Npc* npc) {
if (!(npc->flags & NPC_FLAG_PARTICLE)) {
hit = npc_raycast_down_sides(npc->collisionChannel, &xTemp, &yTemp, &zTemp, &length);
} else {
hit = npc_raycast_down_ahead(npc->collisionChannel, &xTemp, &yTemp, &zTemp, &length, npc->yaw,
hit = npc_raycast_down_around(npc->collisionChannel, &xTemp, &yTemp, &zTemp, &length, npc->yaw,
npc->collisionRadius);
}
@ -418,7 +418,7 @@ s32 func_800397E8(Npc* npc, f32 arg1) {
if (!(npc->flags & NPC_FLAG_PARTICLE)) {
phi_v0 = npc_raycast_down_sides(npc->collisionChannel, &x, &y, &z, &length);
} else {
phi_v0 = npc_raycast_down_ahead(npc->collisionChannel, &x, &y, &z, &length, npc->yaw, npc->collisionRadius);
phi_v0 = npc_raycast_down_around(npc->collisionChannel, &x, &y, &z, &length, npc->yaw, npc->collisionRadius);
}
if (phi_v0 != 0 && length <= oldLength) {

View File

@ -20,7 +20,6 @@ BSS unkPartnerStruct D_802BFF30;
f32 get_player_normal_pitch(void);
void partner_kill_ability_script(void);
f64 fabs(f64 val);
void func_802BD100_320C50(void) {
PlayerStatus* playerStatus = &gPlayerStatus;
@ -101,7 +100,7 @@ ApiStatus func_802BD2D4_320E24(Evt* script, s32 isInitialCall) {
playerData->unk_2F4[8]++;
lakilester->flags |= NPC_FLAG_DIRTY_SHADOW;
entity = D_8010C954;
if (entity == NULL) {
partner_flying_update_player_tracking(lakilester);
partner_flying_update_motion(lakilester);
@ -191,14 +190,14 @@ void func_802BD6BC_32120C(f32* arg0, f32* arg1) {
f32 atan = atan2(0.0f, 0.0f, temp_f24, temp_f22);
f32 temp = clamp_angle(atan + gCameras->currentYaw);
f32 phi_f20 = 0.0f;
if (dist2D(0.0f, 0.0f, temp_f24, temp_f22) >= 1.0) {
phi_f20 = 3.0f;
if (SQ(temp_f24) + SQ(temp_f26) > 3025.0f) {
phi_f20 = 6.0f;
}
}
*arg0 = temp;
*arg1 = phi_f20;
}
@ -257,9 +256,9 @@ s32 func_802BD99C_3214EC(Npc* partner, f32 yOffset, f32 zOffset) {
f32 hitRx, hitRz;
f32 hitDirX, hitDirZ;
f32 temp_f4;
D_802BFF24 = 0;
if (player_raycast_below_cam_relative(&gPlayerStatus, &outX, &outY, &outZ, &outLength, &hitRx, &hitRz,
&hitDirX, &hitDirZ) >= 0) {
temp_f4 = outY - partner->moveToPos.y;
@ -387,7 +386,7 @@ void func_802BDDD8_321928(Npc* npc) {
} else {
phi_a3 = update_lerp(0, 100.0f, 0.0f, D_802BFF20 - 60, 60);
sfx_play_sound_with_params(SOUND_295, 0, 0x40, phi_a3);
}
}
}
@ -411,7 +410,7 @@ void func_802BDDD8_321928(Npc* npc) {
if (npc_test_move_complex_with_slipping(npc->unk_80, &x, &y, &z, npc->moveSpeed, npc->yaw,
npc->collisionHeight, npc->collisionRadius) != 0) {
if (D_802BFF10) {
collisionStatus->pushingAgainstWall = D_8010C97A;
}
@ -435,7 +434,7 @@ void func_802BDDD8_321928(Npc* npc) {
npc->pos.x += (x - npc->pos.x) / 5.0f;
npc->pos.z += (z - npc->pos.z) / 5.0f;
}
sp28 = clamp_angle(npc->yaw + 30.0f);
x = npc->pos.x;
y = npc->moveToPos.y;
@ -454,7 +453,7 @@ void func_802BDDD8_321928(Npc* npc) {
x = npc->pos.x;
y = npc->moveToPos.y;
z = npc->pos.z;
if (npc_test_move_taller_with_slipping(npc->unk_80, &x, &y, &z, 4.0f, sp28, npc->collisionHeight,
npc->collisionRadius) != 0) {
@ -501,7 +500,7 @@ void func_802BDDD8_321928(Npc* npc) {
playerStatus->lastGoodPosition.y = npc->pos.y;
playerStatus->lastGoodPosition.z = npc->pos.z;
collisionStatus->currentFloor = raycastBelowResult;
npc->unk_84 = raycastBelowResult;
npc->moveToPos.y = y;
npc->moveToPos.x = x;
@ -538,11 +537,11 @@ s32 func_802BE6A0_3221F0(f32* arg0) {
f32 hitDirX, hitDirZ;
f32 hitRx, hitRz;
f32 sp28, sp2C;
*arg0 = gPlayerStatus.position.y + colliderHeight;
sp28 = gPlayerStatus.position.x;
sp2C = gPlayerStatus.position.z;
player_raycast_below_cam_relative(&gPlayerStatus, &sp28, arg0, &sp2C, &colliderHeight, &hitRx, &hitRz,
&hitDirX, &hitDirZ);
}
@ -617,7 +616,7 @@ ApiStatus func_802BF4F0_323040(Evt* script, s32 isInitialCall) {
sp24 = playerStatus->position.y + playerStatus->colliderHeight;
sp28 = playerStatus->position.z;
sp2C = playerStatus->colliderHeight;
if (npc_raycast_down_ahead(0, &sp20, &sp24, &sp28, &sp2C,
if (npc_raycast_down_around(0, &sp20, &sp24, &sp28, &sp2C,
lakilester->yaw, lakilester->collisionRadius)) {
D_802BFF00 = 3;
@ -729,7 +728,7 @@ void world_lakilester_post_battle(Npc* npc) {
void func_802BFB44_323694(f32 arg0) {
Camera* currentCamera = &gCameras[gCurrentCameraID];
PlayerStatus* playerStatus = &gPlayerStatus;
add_vec2D_polar(&playerStatus->position.x, &playerStatus->position.z, arg0, currentCamera->currentYaw);
}
@ -741,7 +740,7 @@ s32 func_802BFBA0_3236F0(Evt* script, s32 isInitialCall) {
f32* temp_s0_2;
s32 temp_v0_2;
s32 tempVar;
if (isInitialCall) {
script->functionTemp[0] = 0;
}
@ -794,7 +793,7 @@ s32 func_802BFBA0_3236F0(Evt* script, s32 isInitialCall) {
D_802BFF18 = 0;
script->functionTemp[0] = 1;
break;
case 1:
npc_move_heading(npc, npc->moveSpeed, npc->yaw);
playerStatus->position.x = npc->pos.x;
@ -803,7 +802,7 @@ s32 func_802BFBA0_3236F0(Evt* script, s32 isInitialCall) {
playerStatus->targetYaw = npc->yaw;
func_802BFB44_323694(2.0f);
script->functionTemp[1] -= 1;
if (script->functionTemp[1] == 0) {
if (script->varTable[12] != 0) {
partnerActionStatus->actionState.b[1] = tempVar;

View File

@ -54,7 +54,7 @@ void func_802BD20C_31DF7C(f32* arg0, f32* arg1) {
f32 phi_f20;
f32 temp_f2 = gPartnerActionStatus.stickY;
f32 temp_f0 = gPartnerActionStatus.stickX;
D_802BFDB0_320B20 = temp_f0;
D_802BFDB4_320B24 = temp_f2;
temp_f22 = clamp_angle(atan2(0.0f, 0.0f, temp_f0, -temp_f2) + gCameras->currentYaw);
@ -82,8 +82,8 @@ void func_802BD368_31E0D8(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32
arg2 += 100.0f;
sp20 = 200.0f;
if (npc_raycast_down_ahead(arg0, &arg1, &arg2, &arg3, &sp20, arg4, arg5) == 0) {
if (npc_raycast_down_around(arg0, &arg1, &arg2, &arg3, &sp20, arg4, arg5) == 0) {
collisionStatus->currentFloor = -1;
} else {
collisionStatus->currentFloor = D_8010C97A;
@ -131,7 +131,7 @@ void world_sushie_init(Npc* sushie) {
s32 func_802BF568_3202D8(Evt* script, s32 isInitialCall) {
Npc* sushie = script->owner2.npc;
if (isInitialCall) {
partner_init_get_out(sushie);
}
@ -159,7 +159,7 @@ ApiStatus func_802BF5A0_320310(Evt* script, s32 isInitialCall) {
}
entity = D_8010C954;
if (entity == NULL) {
partner_walking_update_player_tracking(sushie);
partner_walking_update_motion(sushie);
@ -277,7 +277,7 @@ void world_sushie_pre_battle(Npc* sushie) {
void world_sushie_post_battle(Npc* sushie) {
PartnerActionStatus* sushieActionStatus = &gPartnerActionStatus;
if (sushieActionStatus->actionState.b[1] != 0) {
*sushie = sushieActionStatus->npc;
partner_use_ability();
@ -294,7 +294,7 @@ s32 func_802BFAB8_320828(Evt* script, s32 isInitialCall) {
script->functionTemp[0] = 0;
D_802BFEE0 = playerStatus->position.y;
}
funcTemp0 = script->functionTemp[0];
switch (funcTemp0) {

View File

@ -25,7 +25,7 @@ glabel func_80262130
/* 190A60 80262180 E7B4002C */ swc1 $f20, 0x2c($sp)
/* 190A64 80262184 AFA20010 */ sw $v0, 0x10($sp)
/* 190A68 80262188 E7A00014 */ swc1 $f0, 0x14($sp)
/* 190A6C 8026218C 0C0371DE */ jal npc_raycast_down_ahead
/* 190A6C 8026218C 0C0371DE */ jal npc_raycast_down_around
/* 190A70 80262190 E7A20018 */ swc1 $f2, 0x18($sp)
/* 190A74 80262194 10400013 */ beqz $v0, .L802621E4
/* 190A78 80262198 24020001 */ addiu $v0, $zero, 1

View File

@ -1,166 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel npc_raycast_down
/* 759B0 800DC500 27BDFF60 */ addiu $sp, $sp, -0xa0
/* 759B4 800DC504 AFB00070 */ sw $s0, 0x70($sp)
/* 759B8 800DC508 0080802D */ daddu $s0, $a0, $zero
/* 759BC 800DC50C AFB20078 */ sw $s2, 0x78($sp)
/* 759C0 800DC510 00A0902D */ daddu $s2, $a1, $zero
/* 759C4 800DC514 AFB3007C */ sw $s3, 0x7c($sp)
/* 759C8 800DC518 00C0982D */ daddu $s3, $a2, $zero
/* 759CC 800DC51C AFB40080 */ sw $s4, 0x80($sp)
/* 759D0 800DC520 00E0A02D */ daddu $s4, $a3, $zero
/* 759D4 800DC524 AFB50084 */ sw $s5, 0x84($sp)
/* 759D8 800DC528 8FB500B0 */ lw $s5, 0xb0($sp)
/* 759DC 800DC52C 27A20038 */ addiu $v0, $sp, 0x38
/* 759E0 800DC530 AFBF0088 */ sw $ra, 0x88($sp)
/* 759E4 800DC534 AFB10074 */ sw $s1, 0x74($sp)
/* 759E8 800DC538 F7B60098 */ sdc1 $f22, 0x98($sp)
/* 759EC 800DC53C F7B40090 */ sdc1 $f20, 0x90($sp)
/* 759F0 800DC540 C6A00000 */ lwc1 $f0, ($s5)
/* 759F4 800DC544 3C01BF80 */ lui $at, 0xbf80
/* 759F8 800DC548 4481A000 */ mtc1 $at, $f20
/* 759FC 800DC54C 46000005 */ abs.s $f0, $f0
/* 75A00 800DC550 E7A00044 */ swc1 $f0, 0x44($sp)
/* 75A04 800DC554 E7A00060 */ swc1 $f0, 0x60($sp)
/* 75A08 800DC558 C6440000 */ lwc1 $f4, ($s2)
/* 75A0C 800DC55C C6600000 */ lwc1 $f0, ($s3)
/* 75A10 800DC560 C6820000 */ lwc1 $f2, ($s4)
/* 75A14 800DC564 AFA2001C */ sw $v0, 0x1c($sp)
/* 75A18 800DC568 27A2003C */ addiu $v0, $sp, 0x3c
/* 75A1C 800DC56C AFA20020 */ sw $v0, 0x20($sp)
/* 75A20 800DC570 27A20040 */ addiu $v0, $sp, 0x40
/* 75A24 800DC574 AFA20024 */ sw $v0, 0x24($sp)
/* 75A28 800DC578 27A20044 */ addiu $v0, $sp, 0x44
/* 75A2C 800DC57C AFA20028 */ sw $v0, 0x28($sp)
/* 75A30 800DC580 27A20048 */ addiu $v0, $sp, 0x48
/* 75A34 800DC584 AFA2002C */ sw $v0, 0x2c($sp)
/* 75A38 800DC588 27A2004C */ addiu $v0, $sp, 0x4c
/* 75A3C 800DC58C AFA20030 */ sw $v0, 0x30($sp)
/* 75A40 800DC590 44060000 */ mfc1 $a2, $f0
/* 75A44 800DC594 44071000 */ mfc1 $a3, $f2
/* 75A48 800DC598 44052000 */ mfc1 $a1, $f4
/* 75A4C 800DC59C 27A20050 */ addiu $v0, $sp, 0x50
/* 75A50 800DC5A0 AFA00010 */ sw $zero, 0x10($sp)
/* 75A54 800DC5A4 E7B40014 */ swc1 $f20, 0x14($sp)
/* 75A58 800DC5A8 AFA00018 */ sw $zero, 0x18($sp)
/* 75A5C 800DC5AC 0C017334 */ jal test_ray_colliders
/* 75A60 800DC5B0 AFA20034 */ sw $v0, 0x34($sp)
/* 75A64 800DC5B4 0040882D */ daddu $s1, $v0, $zero
/* 75A68 800DC5B8 3C020004 */ lui $v0, 4
/* 75A6C 800DC5BC 02028024 */ and $s0, $s0, $v0
/* 75A70 800DC5C0 1600002E */ bnez $s0, .L800DC67C
/* 75A74 800DC5C4 27A20054 */ addiu $v0, $sp, 0x54
/* 75A78 800DC5C8 44800000 */ mtc1 $zero, $f0
/* 75A7C 800DC5CC AFA20018 */ sw $v0, 0x18($sp)
/* 75A80 800DC5D0 27A20058 */ addiu $v0, $sp, 0x58
/* 75A84 800DC5D4 AFA2001C */ sw $v0, 0x1c($sp)
/* 75A88 800DC5D8 27A2005C */ addiu $v0, $sp, 0x5c
/* 75A8C 800DC5DC AFA20020 */ sw $v0, 0x20($sp)
/* 75A90 800DC5E0 27A20060 */ addiu $v0, $sp, 0x60
/* 75A94 800DC5E4 AFA20024 */ sw $v0, 0x24($sp)
/* 75A98 800DC5E8 27A20064 */ addiu $v0, $sp, 0x64
/* 75A9C 800DC5EC AFA20028 */ sw $v0, 0x28($sp)
/* 75AA0 800DC5F0 27A20068 */ addiu $v0, $sp, 0x68
/* 75AA4 800DC5F4 AFA2002C */ sw $v0, 0x2c($sp)
/* 75AA8 800DC5F8 27A2006C */ addiu $v0, $sp, 0x6c
/* 75AAC 800DC5FC E7B40010 */ swc1 $f20, 0x10($sp)
/* 75AB0 800DC600 AFA20030 */ sw $v0, 0x30($sp)
/* 75AB4 800DC604 E7A00014 */ swc1 $f0, 0x14($sp)
/* 75AB8 800DC608 C64C0000 */ lwc1 $f12, ($s2)
/* 75ABC 800DC60C C66E0000 */ lwc1 $f14, ($s3)
/* 75AC0 800DC610 8E860000 */ lw $a2, ($s4)
/* 75AC4 800DC614 44070000 */ mfc1 $a3, $f0
/* 75AC8 800DC618 0C017512 */ jal test_ray_entities
/* 75ACC 800DC61C 00000000 */ nop
/* 75AD0 800DC620 04400014 */ bltz $v0, .L800DC674
/* 75AD4 800DC624 00000000 */ nop
/* 75AD8 800DC628 C7AC0060 */ lwc1 $f12, 0x60($sp)
/* 75ADC 800DC62C C7A00044 */ lwc1 $f0, 0x44($sp)
/* 75AE0 800DC630 4600603C */ c.lt.s $f12, $f0
/* 75AE4 800DC634 00000000 */ nop
/* 75AE8 800DC638 4500000E */ bc1f .L800DC674
/* 75AEC 800DC63C 34514000 */ ori $s1, $v0, 0x4000
/* 75AF0 800DC640 C7A00054 */ lwc1 $f0, 0x54($sp)
/* 75AF4 800DC644 C7A20058 */ lwc1 $f2, 0x58($sp)
/* 75AF8 800DC648 C7A4005C */ lwc1 $f4, 0x5c($sp)
/* 75AFC 800DC64C C7A60064 */ lwc1 $f6, 0x64($sp)
/* 75B00 800DC650 C7A80068 */ lwc1 $f8, 0x68($sp)
/* 75B04 800DC654 C7AA006C */ lwc1 $f10, 0x6c($sp)
/* 75B08 800DC658 E7AC0044 */ swc1 $f12, 0x44($sp)
/* 75B0C 800DC65C E7A00038 */ swc1 $f0, 0x38($sp)
/* 75B10 800DC660 E7A2003C */ swc1 $f2, 0x3c($sp)
/* 75B14 800DC664 E7A40040 */ swc1 $f4, 0x40($sp)
/* 75B18 800DC668 E7A60048 */ swc1 $f6, 0x48($sp)
/* 75B1C 800DC66C E7A8004C */ swc1 $f8, 0x4c($sp)
/* 75B20 800DC670 E7AA0050 */ swc1 $f10, 0x50($sp)
.L800DC674:
/* 75B24 800DC674 06200035 */ bltz $s1, .L800DC74C
/* 75B28 800DC678 0220102D */ daddu $v0, $s1, $zero
.L800DC67C:
/* 75B2C 800DC67C C7A00044 */ lwc1 $f0, 0x44($sp)
/* 75B30 800DC680 E6A00000 */ swc1 $f0, ($s5)
/* 75B34 800DC684 C7A00038 */ lwc1 $f0, 0x38($sp)
/* 75B38 800DC688 E6400000 */ swc1 $f0, ($s2)
/* 75B3C 800DC68C C7A0003C */ lwc1 $f0, 0x3c($sp)
/* 75B40 800DC690 E6600000 */ swc1 $f0, ($s3)
/* 75B44 800DC694 C7A00040 */ lwc1 $f0, 0x40($sp)
/* 75B48 800DC698 0620002B */ bltz $s1, .L800DC748
/* 75B4C 800DC69C E6800000 */ swc1 $f0, ($s4)
/* 75B50 800DC6A0 C7A40050 */ lwc1 $f4, 0x50($sp)
/* 75B54 800DC6A4 3C0142C8 */ lui $at, 0x42c8
/* 75B58 800DC6A8 4481A000 */ mtc1 $at, $f20
/* 75B5C 800DC6AC 00000000 */ nop
/* 75B60 800DC6B0 46142402 */ mul.s $f16, $f4, $f20
/* 75B64 800DC6B4 00000000 */ nop
/* 75B68 800DC6B8 3C108007 */ lui $s0, %hi(gGameStatusPtr)
/* 75B6C 800DC6BC 2610419C */ addiu $s0, $s0, %lo(gGameStatusPtr)
/* 75B70 800DC6C0 C7A2004C */ lwc1 $f2, 0x4c($sp)
/* 75B74 800DC6C4 44068000 */ mfc1 $a2, $f16
/* 75B78 800DC6C8 46141402 */ mul.s $f16, $f2, $f20
/* 75B7C 800DC6CC 00000000 */ nop
/* 75B80 800DC6D0 4480B000 */ mtc1 $zero, $f22
/* 75B84 800DC6D4 8E020000 */ lw $v0, ($s0)
/* 75B88 800DC6D8 C7A00048 */ lwc1 $f0, 0x48($sp)
/* 75B8C 800DC6DC 4600B306 */ mov.s $f12, $f22
/* 75B90 800DC6E0 44078000 */ mfc1 $a3, $f16
/* 75B94 800DC6E4 4600B386 */ mov.s $f14, $f22
/* 75B98 800DC6E8 E4400128 */ swc1 $f0, 0x128($v0)
/* 75B9C 800DC6EC E442012C */ swc1 $f2, 0x12c($v0)
/* 75BA0 800DC6F0 0C00A720 */ jal atan2
/* 75BA4 800DC6F4 E4440130 */ swc1 $f4, 0x130($v0)
/* 75BA8 800DC6F8 C7A20048 */ lwc1 $f2, 0x48($sp)
/* 75BAC 800DC6FC 46141082 */ mul.s $f2, $f2, $f20
/* 75BB0 800DC700 00000000 */ nop
/* 75BB4 800DC704 44061000 */ mfc1 $a2, $f2
/* 75BB8 800DC708 C7A2004C */ lwc1 $f2, 0x4c($sp)
/* 75BBC 800DC70C 46141082 */ mul.s $f2, $f2, $f20
/* 75BC0 800DC710 00000000 */ nop
/* 75BC4 800DC714 4600B306 */ mov.s $f12, $f22
/* 75BC8 800DC718 46006386 */ mov.s $f14, $f12
/* 75BCC 800DC71C 8E020000 */ lw $v0, ($s0)
/* 75BD0 800DC720 44071000 */ mfc1 $a3, $f2
/* 75BD4 800DC724 46000007 */ neg.s $f0, $f0
/* 75BD8 800DC728 E440011C */ swc1 $f0, 0x11c($v0)
/* 75BDC 800DC72C 0C00A720 */ jal atan2
/* 75BE0 800DC730 E44C0120 */ swc1 $f12, 0x120($v0)
/* 75BE4 800DC734 0220102D */ daddu $v0, $s1, $zero
/* 75BE8 800DC738 8E030000 */ lw $v1, ($s0)
/* 75BEC 800DC73C 46000007 */ neg.s $f0, $f0
/* 75BF0 800DC740 080371D3 */ j .L800DC74C
/* 75BF4 800DC744 E4600124 */ swc1 $f0, 0x124($v1)
.L800DC748:
/* 75BF8 800DC748 0220102D */ daddu $v0, $s1, $zero
.L800DC74C:
/* 75BFC 800DC74C 8FBF0088 */ lw $ra, 0x88($sp)
/* 75C00 800DC750 8FB50084 */ lw $s5, 0x84($sp)
/* 75C04 800DC754 8FB40080 */ lw $s4, 0x80($sp)
/* 75C08 800DC758 8FB3007C */ lw $s3, 0x7c($sp)
/* 75C0C 800DC75C 8FB20078 */ lw $s2, 0x78($sp)
/* 75C10 800DC760 8FB10074 */ lw $s1, 0x74($sp)
/* 75C14 800DC764 8FB00070 */ lw $s0, 0x70($sp)
/* 75C18 800DC768 D7B60098 */ ldc1 $f22, 0x98($sp)
/* 75C1C 800DC76C D7B40090 */ ldc1 $f20, 0x90($sp)
/* 75C20 800DC770 03E00008 */ jr $ra
/* 75C24 800DC774 27BD00A0 */ addiu $sp, $sp, 0xa0

View File

@ -1,268 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel npc_raycast_down_ahead
/* 75C28 800DC778 27BDFF78 */ addiu $sp, $sp, -0x88
/* 75C2C 800DC77C F7B80068 */ sdc1 $f24, 0x68($sp)
/* 75C30 800DC780 C7B800A0 */ lwc1 $f24, 0xa0($sp)
/* 75C34 800DC784 AFB40050 */ sw $s4, 0x50($sp)
/* 75C38 800DC788 8FB40098 */ lw $s4, 0x98($sp)
/* 75C3C 800DC78C AFBF0054 */ sw $ra, 0x54($sp)
/* 75C40 800DC790 AFB3004C */ sw $s3, 0x4c($sp)
/* 75C44 800DC794 AFB20048 */ sw $s2, 0x48($sp)
/* 75C48 800DC798 AFB10044 */ sw $s1, 0x44($sp)
/* 75C4C 800DC79C AFB00040 */ sw $s0, 0x40($sp)
/* 75C50 800DC7A0 F7BE0080 */ sdc1 $f30, 0x80($sp)
/* 75C54 800DC7A4 F7BC0078 */ sdc1 $f28, 0x78($sp)
/* 75C58 800DC7A8 F7BA0070 */ sdc1 $f26, 0x70($sp)
/* 75C5C 800DC7AC F7B60060 */ sdc1 $f22, 0x60($sp)
/* 75C60 800DC7B0 F7B40058 */ sdc1 $f20, 0x58($sp)
/* 75C64 800DC7B4 C4A60000 */ lwc1 $f6, ($a1)
/* 75C68 800DC7B8 00C0882D */ daddu $s1, $a2, $zero
/* 75C6C 800DC7BC E7A60028 */ swc1 $f6, 0x28($sp)
/* 75C70 800DC7C0 C6260000 */ lwc1 $f6, ($s1)
/* 75C74 800DC7C4 0080902D */ daddu $s2, $a0, $zero
/* 75C78 800DC7C8 E7A6002C */ swc1 $f6, 0x2c($sp)
/* 75C7C 800DC7CC C4E60000 */ lwc1 $f6, ($a3)
/* 75C80 800DC7D0 3C138011 */ lui $s3, %hi(D_8010C970)
/* 75C84 800DC7D4 2673C970 */ addiu $s3, $s3, %lo(D_8010C970)
/* 75C88 800DC7D8 E7A60030 */ swc1 $f6, 0x30($sp)
/* 75C8C 800DC7DC C7A6002C */ lwc1 $f6, 0x2c($sp)
/* 75C90 800DC7E0 44806000 */ mtc1 $zero, $f12
/* 75C94 800DC7E4 4600318D */ trunc.w.s $f6, $f6
/* 75C98 800DC7E8 E6660000 */ swc1 $f6, ($s3)
/* 75C9C 800DC7EC C6200000 */ lwc1 $f0, ($s1)
/* 75CA0 800DC7F0 3C014004 */ lui $at, 0x4004
/* 75CA4 800DC7F4 44811800 */ mtc1 $at, $f3
/* 75CA8 800DC7F8 44801000 */ mtc1 $zero, $f2
/* 75CAC 800DC7FC 4600018D */ trunc.w.s $f6, $f0
/* 75CB0 800DC800 3C018011 */ lui $at, %hi(D_8010C94C)
/* 75CB4 800DC804 E426C94C */ swc1 $f6, %lo(D_8010C94C)($at)
/* 75CB8 800DC808 C7A6009C */ lwc1 $f6, 0x9c($sp)
/* 75CBC 800DC80C C6200000 */ lwc1 $f0, ($s1)
/* 75CC0 800DC810 460C3300 */ add.s $f12, $f6, $f12
/* 75CC4 800DC814 4600018D */ trunc.w.s $f6, $f0
/* 75CC8 800DC818 3C018011 */ lui $at, %hi(D_8010C974)
/* 75CCC 800DC81C E426C974 */ swc1 $f6, %lo(D_8010C974)($at)
/* 75CD0 800DC820 4600C021 */ cvt.d.s $f0, $f24
/* 75CD4 800DC824 46220003 */ div.d $f0, $f0, $f2
/* 75CD8 800DC828 C6820000 */ lwc1 $f2, ($s4)
/* 75CDC 800DC82C 46200620 */ cvt.s.d $f24, $f0
/* 75CE0 800DC830 0C00A6C9 */ jal clamp_angle
/* 75CE4 800DC834 46001685 */ abs.s $f26, $f2
/* 75CE8 800DC838 3C0140C9 */ lui $at, 0x40c9
/* 75CEC 800DC83C 34210FD0 */ ori $at, $at, 0xfd0
/* 75CF0 800DC840 44811000 */ mtc1 $at, $f2
/* 75CF4 800DC844 00000000 */ nop
/* 75CF8 800DC848 46020002 */ mul.s $f0, $f0, $f2
/* 75CFC 800DC84C 00000000 */ nop
/* 75D00 800DC850 3C0143B4 */ lui $at, 0x43b4
/* 75D04 800DC854 44811000 */ mtc1 $at, $f2
/* 75D08 800DC858 00000000 */ nop
/* 75D0C 800DC85C 46020503 */ div.s $f20, $f0, $f2
/* 75D10 800DC860 0C00A85B */ jal sin_rad
/* 75D14 800DC864 4600A306 */ mov.s $f12, $f20
/* 75D18 800DC868 46000586 */ mov.s $f22, $f0
/* 75D1C 800DC86C 0C00A874 */ jal cos_rad
/* 75D20 800DC870 4600A306 */ mov.s $f12, $f20
/* 75D24 800DC874 4616C102 */ mul.s $f4, $f24, $f22
/* 75D28 800DC878 00000000 */ nop
/* 75D2C 800DC87C 0000802D */ daddu $s0, $zero, $zero
/* 75D30 800DC880 0240202D */ daddu $a0, $s2, $zero
/* 75D34 800DC884 27A50018 */ addiu $a1, $sp, 0x18
/* 75D38 800DC888 4600C087 */ neg.s $f2, $f24
/* 75D3C 800DC88C 46001002 */ mul.s $f0, $f2, $f0
/* 75D40 800DC890 00000000 */ nop
/* 75D44 800DC894 27A6001C */ addiu $a2, $sp, 0x1c
/* 75D48 800DC898 27A70020 */ addiu $a3, $sp, 0x20
/* 75D4C 800DC89C C7A60028 */ lwc1 $f6, 0x28($sp)
/* 75D50 800DC8A0 3C01C6FF */ lui $at, 0xc6ff
/* 75D54 800DC8A4 3421FE00 */ ori $at, $at, 0xfe00
/* 75D58 800DC8A8 4481E000 */ mtc1 $at, $f28
/* 75D5C 800DC8AC 46043080 */ add.s $f2, $f6, $f4
/* 75D60 800DC8B0 C7A6002C */ lwc1 $f6, 0x2c($sp)
/* 75D64 800DC8B4 27A20024 */ addiu $v0, $sp, 0x24
/* 75D68 800DC8B8 E7BA0024 */ swc1 $f26, 0x24($sp)
/* 75D6C 800DC8BC E7A6001C */ swc1 $f6, 0x1c($sp)
/* 75D70 800DC8C0 C7A60030 */ lwc1 $f6, 0x30($sp)
/* 75D74 800DC8C4 4600E786 */ mov.s $f30, $f28
/* 75D78 800DC8C8 46003000 */ add.s $f0, $f6, $f0
/* 75D7C 800DC8CC E7BC0038 */ swc1 $f28, 0x38($sp)
/* 75D80 800DC8D0 E7A20018 */ swc1 $f2, 0x18($sp)
/* 75D84 800DC8D4 E7A00020 */ swc1 $f0, 0x20($sp)
/* 75D88 800DC8D8 0C037140 */ jal npc_raycast_down
/* 75D8C 800DC8DC AFA20010 */ sw $v0, 0x10($sp)
/* 75D90 800DC8E0 0440000F */ bltz $v0, .L800DC920
/* 75D94 800DC8E4 E7BA0034 */ swc1 $f26, 0x34($sp)
/* 75D98 800DC8E8 C7A00024 */ lwc1 $f0, 0x24($sp)
/* 75D9C 800DC8EC 461A003E */ c.le.s $f0, $f26
/* 75DA0 800DC8F0 00000000 */ nop
/* 75DA4 800DC8F4 4500000A */ bc1f .L800DC920
/* 75DA8 800DC8F8 00000000 */ nop
/* 75DAC 800DC8FC 46000686 */ mov.s $f26, $f0
/* 75DB0 800DC900 C7BC001C */ lwc1 $f28, 0x1c($sp)
/* 75DB4 800DC904 24100001 */ addiu $s0, $zero, 1
/* 75DB8 800DC908 3C018011 */ lui $at, %hi(D_8010C978)
/* 75DBC 800DC90C AC22C978 */ sw $v0, %lo(D_8010C978)($at)
/* 75DC0 800DC910 3C018011 */ lui $at, %hi(D_8010C98C)
/* 75DC4 800DC914 AC22C98C */ sw $v0, %lo(D_8010C98C)($at)
/* 75DC8 800DC918 4600E18D */ trunc.w.s $f6, $f28
/* 75DCC 800DC91C E6660000 */ swc1 $f6, ($s3)
.L800DC920:
/* 75DD0 800DC920 3C0142F0 */ lui $at, 0x42f0
/* 75DD4 800DC924 44816000 */ mtc1 $at, $f12
/* 75DD8 800DC928 C7A6009C */ lwc1 $f6, 0x9c($sp)
/* 75DDC 800DC92C 0C00A6C9 */ jal clamp_angle
/* 75DE0 800DC930 460C3300 */ add.s $f12, $f6, $f12
/* 75DE4 800DC934 3C0140C9 */ lui $at, 0x40c9
/* 75DE8 800DC938 34210FD0 */ ori $at, $at, 0xfd0
/* 75DEC 800DC93C 44811000 */ mtc1 $at, $f2
/* 75DF0 800DC940 00000000 */ nop
/* 75DF4 800DC944 46020002 */ mul.s $f0, $f0, $f2
/* 75DF8 800DC948 00000000 */ nop
/* 75DFC 800DC94C 3C0143B4 */ lui $at, 0x43b4
/* 75E00 800DC950 44811000 */ mtc1 $at, $f2
/* 75E04 800DC954 00000000 */ nop
/* 75E08 800DC958 46020503 */ div.s $f20, $f0, $f2
/* 75E0C 800DC95C 0C00A85B */ jal sin_rad
/* 75E10 800DC960 4600A306 */ mov.s $f12, $f20
/* 75E14 800DC964 46000586 */ mov.s $f22, $f0
/* 75E18 800DC968 0C00A874 */ jal cos_rad
/* 75E1C 800DC96C 4600A306 */ mov.s $f12, $f20
/* 75E20 800DC970 4616C102 */ mul.s $f4, $f24, $f22
/* 75E24 800DC974 00000000 */ nop
/* 75E28 800DC978 4600C087 */ neg.s $f2, $f24
/* 75E2C 800DC97C 46001002 */ mul.s $f0, $f2, $f0
/* 75E30 800DC980 00000000 */ nop
/* 75E34 800DC984 0240202D */ daddu $a0, $s2, $zero
/* 75E38 800DC988 C7A60028 */ lwc1 $f6, 0x28($sp)
/* 75E3C 800DC98C 27A50018 */ addiu $a1, $sp, 0x18
/* 75E40 800DC990 46043080 */ add.s $f2, $f6, $f4
/* 75E44 800DC994 C7A6002C */ lwc1 $f6, 0x2c($sp)
/* 75E48 800DC998 27A6001C */ addiu $a2, $sp, 0x1c
/* 75E4C 800DC99C E7A6001C */ swc1 $f6, 0x1c($sp)
/* 75E50 800DC9A0 C7A60030 */ lwc1 $f6, 0x30($sp)
/* 75E54 800DC9A4 27A70020 */ addiu $a3, $sp, 0x20
/* 75E58 800DC9A8 46003000 */ add.s $f0, $f6, $f0
/* 75E5C 800DC9AC C7A60034 */ lwc1 $f6, 0x34($sp)
/* 75E60 800DC9B0 27A20024 */ addiu $v0, $sp, 0x24
/* 75E64 800DC9B4 E7A20018 */ swc1 $f2, 0x18($sp)
/* 75E68 800DC9B8 E7A60024 */ swc1 $f6, 0x24($sp)
/* 75E6C 800DC9BC E7A00020 */ swc1 $f0, 0x20($sp)
/* 75E70 800DC9C0 0C037140 */ jal npc_raycast_down
/* 75E74 800DC9C4 AFA20010 */ sw $v0, 0x10($sp)
/* 75E78 800DC9C8 04400010 */ bltz $v0, .L800DCA0C
/* 75E7C 800DC9CC 00000000 */ nop
/* 75E80 800DC9D0 C7A00024 */ lwc1 $f0, 0x24($sp)
/* 75E84 800DC9D4 461A003E */ c.le.s $f0, $f26
/* 75E88 800DC9D8 00000000 */ nop
/* 75E8C 800DC9DC 4500000B */ bc1f .L800DCA0C
/* 75E90 800DC9E0 00000000 */ nop
/* 75E94 800DC9E4 46000686 */ mov.s $f26, $f0
/* 75E98 800DC9E8 C7BE001C */ lwc1 $f30, 0x1c($sp)
/* 75E9C 800DC9EC 24100001 */ addiu $s0, $zero, 1
/* 75EA0 800DC9F0 3C018011 */ lui $at, %hi(D_8010C978)
/* 75EA4 800DC9F4 AC22C978 */ sw $v0, %lo(D_8010C978)($at)
/* 75EA8 800DC9F8 3C018011 */ lui $at, %hi(D_8010C968)
/* 75EAC 800DC9FC AC22C968 */ sw $v0, %lo(D_8010C968)($at)
/* 75EB0 800DCA00 4600F18D */ trunc.w.s $f6, $f30
/* 75EB4 800DCA04 3C018011 */ lui $at, %hi(D_8010C94C)
/* 75EB8 800DCA08 E426C94C */ swc1 $f6, %lo(D_8010C94C)($at)
.L800DCA0C:
/* 75EBC 800DCA0C 3C0142F0 */ lui $at, 0x42f0
/* 75EC0 800DCA10 44816000 */ mtc1 $at, $f12
/* 75EC4 800DCA14 C7A6009C */ lwc1 $f6, 0x9c($sp)
/* 75EC8 800DCA18 0C00A6C9 */ jal clamp_angle
/* 75ECC 800DCA1C 460C3301 */ sub.s $f12, $f6, $f12
/* 75ED0 800DCA20 3C0140C9 */ lui $at, 0x40c9
/* 75ED4 800DCA24 34210FD0 */ ori $at, $at, 0xfd0
/* 75ED8 800DCA28 44811000 */ mtc1 $at, $f2
/* 75EDC 800DCA2C 00000000 */ nop
/* 75EE0 800DCA30 46020002 */ mul.s $f0, $f0, $f2
/* 75EE4 800DCA34 00000000 */ nop
/* 75EE8 800DCA38 3C0143B4 */ lui $at, 0x43b4
/* 75EEC 800DCA3C 44811000 */ mtc1 $at, $f2
/* 75EF0 800DCA40 00000000 */ nop
/* 75EF4 800DCA44 46020503 */ div.s $f20, $f0, $f2
/* 75EF8 800DCA48 0C00A85B */ jal sin_rad
/* 75EFC 800DCA4C 4600A306 */ mov.s $f12, $f20
/* 75F00 800DCA50 46000586 */ mov.s $f22, $f0
/* 75F04 800DCA54 0C00A874 */ jal cos_rad
/* 75F08 800DCA58 4600A306 */ mov.s $f12, $f20
/* 75F0C 800DCA5C 4616C102 */ mul.s $f4, $f24, $f22
/* 75F10 800DCA60 00000000 */ nop
/* 75F14 800DCA64 4600C087 */ neg.s $f2, $f24
/* 75F18 800DCA68 46001002 */ mul.s $f0, $f2, $f0
/* 75F1C 800DCA6C 00000000 */ nop
/* 75F20 800DCA70 0240202D */ daddu $a0, $s2, $zero
/* 75F24 800DCA74 C7A60028 */ lwc1 $f6, 0x28($sp)
/* 75F28 800DCA78 27A50018 */ addiu $a1, $sp, 0x18
/* 75F2C 800DCA7C 46043080 */ add.s $f2, $f6, $f4
/* 75F30 800DCA80 C7A6002C */ lwc1 $f6, 0x2c($sp)
/* 75F34 800DCA84 27A6001C */ addiu $a2, $sp, 0x1c
/* 75F38 800DCA88 E7A6001C */ swc1 $f6, 0x1c($sp)
/* 75F3C 800DCA8C C7A60030 */ lwc1 $f6, 0x30($sp)
/* 75F40 800DCA90 27A70020 */ addiu $a3, $sp, 0x20
/* 75F44 800DCA94 46003000 */ add.s $f0, $f6, $f0
/* 75F48 800DCA98 C7A60034 */ lwc1 $f6, 0x34($sp)
/* 75F4C 800DCA9C 27A20024 */ addiu $v0, $sp, 0x24
/* 75F50 800DCAA0 E7A20018 */ swc1 $f2, 0x18($sp)
/* 75F54 800DCAA4 E7A60024 */ swc1 $f6, 0x24($sp)
/* 75F58 800DCAA8 E7A00020 */ swc1 $f0, 0x20($sp)
/* 75F5C 800DCAAC 0C037140 */ jal npc_raycast_down
/* 75F60 800DCAB0 AFA20010 */ sw $v0, 0x10($sp)
/* 75F64 800DCAB4 04400011 */ bltz $v0, .L800DCAFC
/* 75F68 800DCAB8 00000000 */ nop
/* 75F6C 800DCABC C7A00024 */ lwc1 $f0, 0x24($sp)
/* 75F70 800DCAC0 461A003E */ c.le.s $f0, $f26
/* 75F74 800DCAC4 00000000 */ nop
/* 75F78 800DCAC8 4500000C */ bc1f .L800DCAFC
/* 75F7C 800DCACC 00000000 */ nop
/* 75F80 800DCAD0 46000686 */ mov.s $f26, $f0
/* 75F84 800DCAD4 C7A6001C */ lwc1 $f6, 0x1c($sp)
/* 75F88 800DCAD8 24100001 */ addiu $s0, $zero, 1
/* 75F8C 800DCADC 3C018011 */ lui $at, %hi(D_8010C978)
/* 75F90 800DCAE0 AC22C978 */ sw $v0, %lo(D_8010C978)($at)
/* 75F94 800DCAE4 3C018011 */ lui $at, %hi(D_8010C968)
/* 75F98 800DCAE8 AC22C968 */ sw $v0, %lo(D_8010C968)($at)
/* 75F9C 800DCAEC E7A60038 */ swc1 $f6, 0x38($sp)
/* 75FA0 800DCAF0 4600318D */ trunc.w.s $f6, $f6
/* 75FA4 800DCAF4 3C018011 */ lui $at, %hi(D_8010C974)
/* 75FA8 800DCAF8 E426C974 */ swc1 $f6, %lo(D_8010C974)($at)
.L800DCAFC:
/* 75FAC 800DCAFC 1200000F */ beqz $s0, .L800DCB3C
/* 75FB0 800DCB00 0000102D */ daddu $v0, $zero, $zero
/* 75FB4 800DCB04 461EE03C */ c.lt.s $f28, $f30
/* 75FB8 800DCB08 00000000 */ nop
/* 75FBC 800DCB0C 45020002 */ bc1fl .L800DCB18
/* 75FC0 800DCB10 E63C0000 */ swc1 $f28, ($s1)
/* 75FC4 800DCB14 E63E0000 */ swc1 $f30, ($s1)
.L800DCB18:
/* 75FC8 800DCB18 C6200000 */ lwc1 $f0, ($s1)
/* 75FCC 800DCB1C C7A60038 */ lwc1 $f6, 0x38($sp)
/* 75FD0 800DCB20 4606003C */ c.lt.s $f0, $f6
/* 75FD4 800DCB24 00000000 */ nop
/* 75FD8 800DCB28 45030001 */ bc1tl .L800DCB30
/* 75FDC 800DCB2C E6260000 */ swc1 $f6, ($s1)
.L800DCB30:
/* 75FE0 800DCB30 E69A0000 */ swc1 $f26, ($s4)
/* 75FE4 800DCB34 080372D1 */ j .L800DCB44
/* 75FE8 800DCB38 24020001 */ addiu $v0, $zero, 1
.L800DCB3C:
/* 75FEC 800DCB3C C7A0001C */ lwc1 $f0, 0x1c($sp)
/* 75FF0 800DCB40 E6200000 */ swc1 $f0, ($s1)
.L800DCB44:
/* 75FF4 800DCB44 8FBF0054 */ lw $ra, 0x54($sp)
/* 75FF8 800DCB48 8FB40050 */ lw $s4, 0x50($sp)
/* 75FFC 800DCB4C 8FB3004C */ lw $s3, 0x4c($sp)
/* 76000 800DCB50 8FB20048 */ lw $s2, 0x48($sp)
/* 76004 800DCB54 8FB10044 */ lw $s1, 0x44($sp)
/* 76008 800DCB58 8FB00040 */ lw $s0, 0x40($sp)
/* 7600C 800DCB5C D7BE0080 */ ldc1 $f30, 0x80($sp)
/* 76010 800DCB60 D7BC0078 */ ldc1 $f28, 0x78($sp)
/* 76014 800DCB64 D7BA0070 */ ldc1 $f26, 0x70($sp)
/* 76018 800DCB68 D7B80068 */ ldc1 $f24, 0x68($sp)
/* 7601C 800DCB6C D7B60060 */ ldc1 $f22, 0x60($sp)
/* 76020 800DCB70 D7B40058 */ ldc1 $f20, 0x58($sp)
/* 76024 800DCB74 03E00008 */ jr $ra
/* 76028 800DCB78 27BD0088 */ addiu $sp, $sp, 0x88

View File

@ -1,198 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel npc_raycast_down_sides
/* 7602C 800DCB7C 27BDFF80 */ addiu $sp, $sp, -0x80
/* 76030 800DCB80 AFB40048 */ sw $s4, 0x48($sp)
/* 76034 800DCB84 8FB40090 */ lw $s4, 0x90($sp)
/* 76038 800DCB88 AFBF004C */ sw $ra, 0x4c($sp)
/* 7603C 800DCB8C AFB30044 */ sw $s3, 0x44($sp)
/* 76040 800DCB90 AFB20040 */ sw $s2, 0x40($sp)
/* 76044 800DCB94 AFB1003C */ sw $s1, 0x3c($sp)
/* 76048 800DCB98 AFB00038 */ sw $s0, 0x38($sp)
/* 7604C 800DCB9C F7BE0078 */ sdc1 $f30, 0x78($sp)
/* 76050 800DCBA0 F7BC0070 */ sdc1 $f28, 0x70($sp)
/* 76054 800DCBA4 F7BA0068 */ sdc1 $f26, 0x68($sp)
/* 76058 800DCBA8 F7B80060 */ sdc1 $f24, 0x60($sp)
/* 7605C 800DCBAC F7B60058 */ sdc1 $f22, 0x58($sp)
/* 76060 800DCBB0 F7B40050 */ sdc1 $f20, 0x50($sp)
/* 76064 800DCBB4 C4A60000 */ lwc1 $f6, ($a1)
/* 76068 800DCBB8 00C0882D */ daddu $s1, $a2, $zero
/* 7606C 800DCBBC E7A60028 */ swc1 $f6, 0x28($sp)
/* 76070 800DCBC0 C63E0000 */ lwc1 $f30, ($s1)
/* 76074 800DCBC4 C4E60000 */ lwc1 $f6, ($a3)
/* 76078 800DCBC8 3C128011 */ lui $s2, %hi(D_8010C970)
/* 7607C 800DCBCC 2652C970 */ addiu $s2, $s2, %lo(D_8010C970)
/* 76080 800DCBD0 E7A6002C */ swc1 $f6, 0x2c($sp)
/* 76084 800DCBD4 4600F18D */ trunc.w.s $f6, $f30
/* 76088 800DCBD8 E6460000 */ swc1 $f6, ($s2)
/* 7608C 800DCBDC C6200000 */ lwc1 $f0, ($s1)
/* 76090 800DCBE0 4600018D */ trunc.w.s $f6, $f0
/* 76094 800DCBE4 3C018011 */ lui $at, %hi(D_8010C94C)
/* 76098 800DCBE8 E426C94C */ swc1 $f6, %lo(D_8010C94C)($at)
/* 7609C 800DCBEC C6200000 */ lwc1 $f0, ($s1)
/* 760A0 800DCBF0 0080982D */ daddu $s3, $a0, $zero
/* 760A4 800DCBF4 4600018D */ trunc.w.s $f6, $f0
/* 760A8 800DCBF8 3C018011 */ lui $at, %hi(D_8010C974)
/* 760AC 800DCBFC E426C974 */ swc1 $f6, %lo(D_8010C974)($at)
/* 760B0 800DCC00 C6800000 */ lwc1 $f0, ($s4)
/* 760B4 800DCC04 44806000 */ mtc1 $zero, $f12
/* 760B8 800DCC08 0C00A6C9 */ jal clamp_angle
/* 760BC 800DCC0C 46000605 */ abs.s $f24, $f0
/* 760C0 800DCC10 3C0140C9 */ lui $at, 0x40c9
/* 760C4 800DCC14 34210FD0 */ ori $at, $at, 0xfd0
/* 760C8 800DCC18 44811000 */ mtc1 $at, $f2
/* 760CC 800DCC1C 00000000 */ nop
/* 760D0 800DCC20 46020002 */ mul.s $f0, $f0, $f2
/* 760D4 800DCC24 00000000 */ nop
/* 760D8 800DCC28 3C0143B4 */ lui $at, 0x43b4
/* 760DC 800DCC2C 44811000 */ mtc1 $at, $f2
/* 760E0 800DCC30 00000000 */ nop
/* 760E4 800DCC34 46020503 */ div.s $f20, $f0, $f2
/* 760E8 800DCC38 0C00A85B */ jal sin_rad
/* 760EC 800DCC3C 4600A306 */ mov.s $f12, $f20
/* 760F0 800DCC40 46000586 */ mov.s $f22, $f0
/* 760F4 800DCC44 0C00A874 */ jal cos_rad
/* 760F8 800DCC48 4600A306 */ mov.s $f12, $f20
/* 760FC 800DCC4C 3C014120 */ lui $at, 0x4120
/* 76100 800DCC50 44813000 */ mtc1 $at, $f6
/* 76104 800DCC54 00000000 */ nop
/* 76108 800DCC58 4606B102 */ mul.s $f4, $f22, $f6
/* 7610C 800DCC5C 00000000 */ nop
/* 76110 800DCC60 0000802D */ daddu $s0, $zero, $zero
/* 76114 800DCC64 0260202D */ daddu $a0, $s3, $zero
/* 76118 800DCC68 27A50018 */ addiu $a1, $sp, 0x18
/* 7611C 800DCC6C 46003087 */ neg.s $f2, $f6
/* 76120 800DCC70 46020002 */ mul.s $f0, $f0, $f2
/* 76124 800DCC74 00000000 */ nop
/* 76128 800DCC78 27A6001C */ addiu $a2, $sp, 0x1c
/* 7612C 800DCC7C 27A70020 */ addiu $a3, $sp, 0x20
/* 76130 800DCC80 C7A60028 */ lwc1 $f6, 0x28($sp)
/* 76134 800DCC84 3C01C6FF */ lui $at, 0xc6ff
/* 76138 800DCC88 3421FE00 */ ori $at, $at, 0xfe00
/* 7613C 800DCC8C 4481D000 */ mtc1 $at, $f26
/* 76140 800DCC90 46043080 */ add.s $f2, $f6, $f4
/* 76144 800DCC94 C7A6002C */ lwc1 $f6, 0x2c($sp)
/* 76148 800DCC98 27A20024 */ addiu $v0, $sp, 0x24
/* 7614C 800DCC9C E7BE001C */ swc1 $f30, 0x1c($sp)
/* 76150 800DCCA0 E7B80024 */ swc1 $f24, 0x24($sp)
/* 76154 800DCCA4 46003000 */ add.s $f0, $f6, $f0
/* 76158 800DCCA8 4600D706 */ mov.s $f28, $f26
/* 7615C 800DCCAC E7A20018 */ swc1 $f2, 0x18($sp)
/* 76160 800DCCB0 E7A00020 */ swc1 $f0, 0x20($sp)
/* 76164 800DCCB4 0C037140 */ jal npc_raycast_down
/* 76168 800DCCB8 AFA20010 */ sw $v0, 0x10($sp)
/* 7616C 800DCCBC 0440000F */ bltz $v0, .L800DCCFC
/* 76170 800DCCC0 E7B80030 */ swc1 $f24, 0x30($sp)
/* 76174 800DCCC4 C7A00024 */ lwc1 $f0, 0x24($sp)
/* 76178 800DCCC8 4618003E */ c.le.s $f0, $f24
/* 7617C 800DCCCC 00000000 */ nop
/* 76180 800DCCD0 4500000A */ bc1f .L800DCCFC
/* 76184 800DCCD4 00000000 */ nop
/* 76188 800DCCD8 46000606 */ mov.s $f24, $f0
/* 7618C 800DCCDC C7BA001C */ lwc1 $f26, 0x1c($sp)
/* 76190 800DCCE0 24100001 */ addiu $s0, $zero, 1
/* 76194 800DCCE4 3C018011 */ lui $at, %hi(D_8010C978)
/* 76198 800DCCE8 AC22C978 */ sw $v0, %lo(D_8010C978)($at)
/* 7619C 800DCCEC 3C018011 */ lui $at, %hi(D_8010C98C)
/* 761A0 800DCCF0 AC22C98C */ sw $v0, %lo(D_8010C98C)($at)
/* 761A4 800DCCF4 4600D18D */ trunc.w.s $f6, $f26
/* 761A8 800DCCF8 E6460000 */ swc1 $f6, ($s2)
.L800DCCFC:
/* 761AC 800DCCFC 3C014334 */ lui $at, 0x4334
/* 761B0 800DCD00 44816000 */ mtc1 $at, $f12
/* 761B4 800DCD04 44803000 */ mtc1 $zero, $f6
/* 761B8 800DCD08 0C00A6C9 */ jal clamp_angle
/* 761BC 800DCD0C 460C3300 */ add.s $f12, $f6, $f12
/* 761C0 800DCD10 3C0140C9 */ lui $at, 0x40c9
/* 761C4 800DCD14 34210FD0 */ ori $at, $at, 0xfd0
/* 761C8 800DCD18 44811000 */ mtc1 $at, $f2
/* 761CC 800DCD1C 00000000 */ nop
/* 761D0 800DCD20 46020002 */ mul.s $f0, $f0, $f2
/* 761D4 800DCD24 00000000 */ nop
/* 761D8 800DCD28 3C0143B4 */ lui $at, 0x43b4
/* 761DC 800DCD2C 44811000 */ mtc1 $at, $f2
/* 761E0 800DCD30 00000000 */ nop
/* 761E4 800DCD34 46020503 */ div.s $f20, $f0, $f2
/* 761E8 800DCD38 0C00A85B */ jal sin_rad
/* 761EC 800DCD3C 4600A306 */ mov.s $f12, $f20
/* 761F0 800DCD40 46000586 */ mov.s $f22, $f0
/* 761F4 800DCD44 0C00A874 */ jal cos_rad
/* 761F8 800DCD48 4600A306 */ mov.s $f12, $f20
/* 761FC 800DCD4C 3C014120 */ lui $at, 0x4120
/* 76200 800DCD50 44813000 */ mtc1 $at, $f6
/* 76204 800DCD54 00000000 */ nop
/* 76208 800DCD58 46163102 */ mul.s $f4, $f6, $f22
/* 7620C 800DCD5C 00000000 */ nop
/* 76210 800DCD60 46003087 */ neg.s $f2, $f6
/* 76214 800DCD64 46001002 */ mul.s $f0, $f2, $f0
/* 76218 800DCD68 00000000 */ nop
/* 7621C 800DCD6C 0260202D */ daddu $a0, $s3, $zero
/* 76220 800DCD70 27A50018 */ addiu $a1, $sp, 0x18
/* 76224 800DCD74 C7A60028 */ lwc1 $f6, 0x28($sp)
/* 76228 800DCD78 27A6001C */ addiu $a2, $sp, 0x1c
/* 7622C 800DCD7C 46043080 */ add.s $f2, $f6, $f4
/* 76230 800DCD80 C7A6002C */ lwc1 $f6, 0x2c($sp)
/* 76234 800DCD84 27A70020 */ addiu $a3, $sp, 0x20
/* 76238 800DCD88 46003000 */ add.s $f0, $f6, $f0
/* 7623C 800DCD8C C7A60030 */ lwc1 $f6, 0x30($sp)
/* 76240 800DCD90 27A20024 */ addiu $v0, $sp, 0x24
/* 76244 800DCD94 E7BE001C */ swc1 $f30, 0x1c($sp)
/* 76248 800DCD98 E7A60024 */ swc1 $f6, 0x24($sp)
/* 7624C 800DCD9C E7A20018 */ swc1 $f2, 0x18($sp)
/* 76250 800DCDA0 E7A00020 */ swc1 $f0, 0x20($sp)
/* 76254 800DCDA4 0C037140 */ jal npc_raycast_down
/* 76258 800DCDA8 AFA20010 */ sw $v0, 0x10($sp)
/* 7625C 800DCDAC 04400010 */ bltz $v0, .L800DCDF0
/* 76260 800DCDB0 00000000 */ nop
/* 76264 800DCDB4 C7A00024 */ lwc1 $f0, 0x24($sp)
/* 76268 800DCDB8 4618003E */ c.le.s $f0, $f24
/* 7626C 800DCDBC 00000000 */ nop
/* 76270 800DCDC0 4500000B */ bc1f .L800DCDF0
/* 76274 800DCDC4 00000000 */ nop
/* 76278 800DCDC8 46000606 */ mov.s $f24, $f0
/* 7627C 800DCDCC C7BC001C */ lwc1 $f28, 0x1c($sp)
/* 76280 800DCDD0 24100001 */ addiu $s0, $zero, 1
/* 76284 800DCDD4 3C018011 */ lui $at, %hi(D_8010C978)
/* 76288 800DCDD8 AC22C978 */ sw $v0, %lo(D_8010C978)($at)
/* 7628C 800DCDDC 3C018011 */ lui $at, %hi(D_8010C968)
/* 76290 800DCDE0 AC22C968 */ sw $v0, %lo(D_8010C968)($at)
/* 76294 800DCDE4 4600E18D */ trunc.w.s $f6, $f28
/* 76298 800DCDE8 3C018011 */ lui $at, %hi(D_8010C94C)
/* 7629C 800DCDEC E426C94C */ swc1 $f6, %lo(D_8010C94C)($at)
.L800DCDF0:
/* 762A0 800DCDF0 12000011 */ beqz $s0, .L800DCE38
/* 762A4 800DCDF4 0000102D */ daddu $v0, $zero, $zero
/* 762A8 800DCDF8 461CD03C */ c.lt.s $f26, $f28
/* 762AC 800DCDFC 00000000 */ nop
/* 762B0 800DCE00 45020002 */ bc1fl .L800DCE0C
/* 762B4 800DCE04 E63A0000 */ swc1 $f26, ($s1)
/* 762B8 800DCE08 E63C0000 */ swc1 $f28, ($s1)
.L800DCE0C:
/* 762BC 800DCE0C C6200000 */ lwc1 $f0, ($s1)
/* 762C0 800DCE10 3C01C6FF */ lui $at, 0xc6ff
/* 762C4 800DCE14 3421FE00 */ ori $at, $at, 0xfe00
/* 762C8 800DCE18 44813000 */ mtc1 $at, $f6
/* 762CC 800DCE1C 00000000 */ nop
/* 762D0 800DCE20 4606003C */ c.lt.s $f0, $f6
/* 762D4 800DCE24 00000000 */ nop
/* 762D8 800DCE28 45030001 */ bc1tl .L800DCE30
/* 762DC 800DCE2C E6260000 */ swc1 $f6, ($s1)
.L800DCE30:
/* 762E0 800DCE30 E6980000 */ swc1 $f24, ($s4)
/* 762E4 800DCE34 24020001 */ addiu $v0, $zero, 1
.L800DCE38:
/* 762E8 800DCE38 8FBF004C */ lw $ra, 0x4c($sp)
/* 762EC 800DCE3C 8FB40048 */ lw $s4, 0x48($sp)
/* 762F0 800DCE40 8FB30044 */ lw $s3, 0x44($sp)
/* 762F4 800DCE44 8FB20040 */ lw $s2, 0x40($sp)
/* 762F8 800DCE48 8FB1003C */ lw $s1, 0x3c($sp)
/* 762FC 800DCE4C 8FB00038 */ lw $s0, 0x38($sp)
/* 76300 800DCE50 D7BE0078 */ ldc1 $f30, 0x78($sp)
/* 76304 800DCE54 D7BC0070 */ ldc1 $f28, 0x70($sp)
/* 76308 800DCE58 D7BA0068 */ ldc1 $f26, 0x68($sp)
/* 7630C 800DCE5C D7B80060 */ ldc1 $f24, 0x60($sp)
/* 76310 800DCE60 D7B60058 */ ldc1 $f22, 0x58($sp)
/* 76314 800DCE64 D7B40050 */ ldc1 $f20, 0x50($sp)
/* 76318 800DCE68 03E00008 */ jr $ra
/* 7631C 800DCE6C 27BD0080 */ addiu $sp, $sp, 0x80

View File

@ -1,127 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel npc_raycast_up
/* 76320 800DCE70 27BDFF50 */ addiu $sp, $sp, -0xb0
/* 76324 800DCE74 AFB20078 */ sw $s2, 0x78($sp)
/* 76328 800DCE78 8FB200C0 */ lw $s2, 0xc0($sp)
/* 7632C 800DCE7C F7BA00A8 */ sdc1 $f26, 0xa8($sp)
/* 76330 800DCE80 3C013F80 */ lui $at, 0x3f80
/* 76334 800DCE84 4481D000 */ mtc1 $at, $f26
/* 76338 800DCE88 AFB00070 */ sw $s0, 0x70($sp)
/* 7633C 800DCE8C 0080802D */ daddu $s0, $a0, $zero
/* 76340 800DCE90 AFB3007C */ sw $s3, 0x7c($sp)
/* 76344 800DCE94 00A0982D */ daddu $s3, $a1, $zero
/* 76348 800DCE98 AFB40080 */ sw $s4, 0x80($sp)
/* 7634C 800DCE9C 00C0A02D */ daddu $s4, $a2, $zero
/* 76350 800DCEA0 AFB50084 */ sw $s5, 0x84($sp)
/* 76354 800DCEA4 00E0A82D */ daddu $s5, $a3, $zero
/* 76358 800DCEA8 AFBF0088 */ sw $ra, 0x88($sp)
/* 7635C 800DCEAC AFB10074 */ sw $s1, 0x74($sp)
/* 76360 800DCEB0 F7B800A0 */ sdc1 $f24, 0xa0($sp)
/* 76364 800DCEB4 F7B60098 */ sdc1 $f22, 0x98($sp)
/* 76368 800DCEB8 F7B40090 */ sdc1 $f20, 0x90($sp)
/* 7636C 800DCEBC C6400000 */ lwc1 $f0, ($s2)
/* 76370 800DCEC0 27A20038 */ addiu $v0, $sp, 0x38
/* 76374 800DCEC4 E7A00044 */ swc1 $f0, 0x44($sp)
/* 76378 800DCEC8 E7A00060 */ swc1 $f0, 0x60($sp)
/* 7637C 800DCECC C6760000 */ lwc1 $f22, ($s3)
/* 76380 800DCED0 C6980000 */ lwc1 $f24, ($s4)
/* 76384 800DCED4 C6B40000 */ lwc1 $f20, ($s5)
/* 76388 800DCED8 AFA2001C */ sw $v0, 0x1c($sp)
/* 7638C 800DCEDC 27A2003C */ addiu $v0, $sp, 0x3c
/* 76390 800DCEE0 AFA20020 */ sw $v0, 0x20($sp)
/* 76394 800DCEE4 27A20040 */ addiu $v0, $sp, 0x40
/* 76398 800DCEE8 AFA20024 */ sw $v0, 0x24($sp)
/* 7639C 800DCEEC 27A20044 */ addiu $v0, $sp, 0x44
/* 763A0 800DCEF0 AFA20028 */ sw $v0, 0x28($sp)
/* 763A4 800DCEF4 27A20048 */ addiu $v0, $sp, 0x48
/* 763A8 800DCEF8 AFA2002C */ sw $v0, 0x2c($sp)
/* 763AC 800DCEFC 27A2004C */ addiu $v0, $sp, 0x4c
/* 763B0 800DCF00 AFA20030 */ sw $v0, 0x30($sp)
/* 763B4 800DCF04 4406C000 */ mfc1 $a2, $f24
/* 763B8 800DCF08 4407A000 */ mfc1 $a3, $f20
/* 763BC 800DCF0C 4405B000 */ mfc1 $a1, $f22
/* 763C0 800DCF10 27A20050 */ addiu $v0, $sp, 0x50
/* 763C4 800DCF14 AFA00010 */ sw $zero, 0x10($sp)
/* 763C8 800DCF18 E7BA0014 */ swc1 $f26, 0x14($sp)
/* 763CC 800DCF1C AFA00018 */ sw $zero, 0x18($sp)
/* 763D0 800DCF20 0C017334 */ jal test_ray_colliders
/* 763D4 800DCF24 AFA20034 */ sw $v0, 0x34($sp)
/* 763D8 800DCF28 0040882D */ daddu $s1, $v0, $zero
/* 763DC 800DCF2C 3C020004 */ lui $v0, 4
/* 763E0 800DCF30 02028024 */ and $s0, $s0, $v0
/* 763E4 800DCF34 16000029 */ bnez $s0, .L800DCFDC
/* 763E8 800DCF38 0220182D */ daddu $v1, $s1, $zero
/* 763EC 800DCF3C 27A20054 */ addiu $v0, $sp, 0x54
/* 763F0 800DCF40 AFA20018 */ sw $v0, 0x18($sp)
/* 763F4 800DCF44 27A20058 */ addiu $v0, $sp, 0x58
/* 763F8 800DCF48 AFA2001C */ sw $v0, 0x1c($sp)
/* 763FC 800DCF4C 27A2005C */ addiu $v0, $sp, 0x5c
/* 76400 800DCF50 AFA20020 */ sw $v0, 0x20($sp)
/* 76404 800DCF54 27A20060 */ addiu $v0, $sp, 0x60
/* 76408 800DCF58 AFA20024 */ sw $v0, 0x24($sp)
/* 7640C 800DCF5C 27A20064 */ addiu $v0, $sp, 0x64
/* 76410 800DCF60 AFA20028 */ sw $v0, 0x28($sp)
/* 76414 800DCF64 27A20068 */ addiu $v0, $sp, 0x68
/* 76418 800DCF68 AFA2002C */ sw $v0, 0x2c($sp)
/* 7641C 800DCF6C 27A2006C */ addiu $v0, $sp, 0x6c
/* 76420 800DCF70 4600B306 */ mov.s $f12, $f22
/* 76424 800DCF74 44800000 */ mtc1 $zero, $f0
/* 76428 800DCF78 4406A000 */ mfc1 $a2, $f20
/* 7642C 800DCF7C 44070000 */ mfc1 $a3, $f0
/* 76430 800DCF80 4600C386 */ mov.s $f14, $f24
/* 76434 800DCF84 E7BA0010 */ swc1 $f26, 0x10($sp)
/* 76438 800DCF88 AFA20030 */ sw $v0, 0x30($sp)
/* 7643C 800DCF8C 0C017512 */ jal test_ray_entities
/* 76440 800DCF90 AFA70014 */ sw $a3, 0x14($sp)
/* 76444 800DCF94 04400010 */ bltz $v0, .L800DCFD8
/* 76448 800DCF98 34434000 */ ori $v1, $v0, 0x4000
/* 7644C 800DCF9C C7A00060 */ lwc1 $f0, 0x60($sp)
/* 76450 800DCFA0 C7A20054 */ lwc1 $f2, 0x54($sp)
/* 76454 800DCFA4 C7A40058 */ lwc1 $f4, 0x58($sp)
/* 76458 800DCFA8 C7A6005C */ lwc1 $f6, 0x5c($sp)
/* 7645C 800DCFAC C7A80064 */ lwc1 $f8, 0x64($sp)
/* 76460 800DCFB0 C7AA0068 */ lwc1 $f10, 0x68($sp)
/* 76464 800DCFB4 C7AC006C */ lwc1 $f12, 0x6c($sp)
/* 76468 800DCFB8 E7A00044 */ swc1 $f0, 0x44($sp)
/* 7646C 800DCFBC E7A20038 */ swc1 $f2, 0x38($sp)
/* 76470 800DCFC0 E7A4003C */ swc1 $f4, 0x3c($sp)
/* 76474 800DCFC4 E7A60040 */ swc1 $f6, 0x40($sp)
/* 76478 800DCFC8 E7A80048 */ swc1 $f8, 0x48($sp)
/* 7647C 800DCFCC E7AA004C */ swc1 $f10, 0x4c($sp)
/* 76480 800DCFD0 080373F7 */ j .L800DCFDC
/* 76484 800DCFD4 E7AC0050 */ swc1 $f12, 0x50($sp)
.L800DCFD8:
/* 76488 800DCFD8 0220182D */ daddu $v1, $s1, $zero
.L800DCFDC:
/* 7648C 800DCFDC 0460000D */ bltz $v1, .L800DD014
/* 76490 800DCFE0 24020001 */ addiu $v0, $zero, 1
/* 76494 800DCFE4 C7A00044 */ lwc1 $f0, 0x44($sp)
/* 76498 800DCFE8 E6400000 */ swc1 $f0, ($s2)
/* 7649C 800DCFEC C7A00038 */ lwc1 $f0, 0x38($sp)
/* 764A0 800DCFF0 E6600000 */ swc1 $f0, ($s3)
/* 764A4 800DCFF4 C7A0003C */ lwc1 $f0, 0x3c($sp)
/* 764A8 800DCFF8 E6800000 */ swc1 $f0, ($s4)
/* 764AC 800DCFFC C7A00040 */ lwc1 $f0, 0x40($sp)
/* 764B0 800DD000 E6A00000 */ swc1 $f0, ($s5)
/* 764B4 800DD004 3C018011 */ lui $at, %hi(D_8010C978)
/* 764B8 800DD008 AC23C978 */ sw $v1, %lo(D_8010C978)($at)
/* 764BC 800DD00C 08037406 */ j .L800DD018
/* 764C0 800DD010 00000000 */ nop
.L800DD014:
/* 764C4 800DD014 0000102D */ daddu $v0, $zero, $zero
.L800DD018:
/* 764C8 800DD018 8FBF0088 */ lw $ra, 0x88($sp)
/* 764CC 800DD01C 8FB50084 */ lw $s5, 0x84($sp)
/* 764D0 800DD020 8FB40080 */ lw $s4, 0x80($sp)
/* 764D4 800DD024 8FB3007C */ lw $s3, 0x7c($sp)
/* 764D8 800DD028 8FB20078 */ lw $s2, 0x78($sp)
/* 764DC 800DD02C 8FB10074 */ lw $s1, 0x74($sp)
/* 764E0 800DD030 8FB00070 */ lw $s0, 0x70($sp)
/* 764E4 800DD034 D7BA00A8 */ ldc1 $f26, 0xa8($sp)
/* 764E8 800DD038 D7B800A0 */ ldc1 $f24, 0xa0($sp)
/* 764EC 800DD03C D7B60098 */ ldc1 $f22, 0x98($sp)
/* 764F0 800DD040 D7B40090 */ ldc1 $f20, 0x90($sp)
/* 764F4 800DD044 03E00008 */ jr $ra
/* 764F8 800DD048 27BD00B0 */ addiu $sp, $sp, 0xb0

View File

@ -1,126 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel npc_raycast_up_corner
/* 764FC 800DD04C 27BDFF60 */ addiu $sp, $sp, -0xa0
/* 76500 800DD050 AFB20060 */ sw $s2, 0x60($sp)
/* 76504 800DD054 00A0902D */ daddu $s2, $a1, $zero
/* 76508 800DD058 AFB30064 */ sw $s3, 0x64($sp)
/* 7650C 800DD05C 00C0982D */ daddu $s3, $a2, $zero
/* 76510 800DD060 AFB40068 */ sw $s4, 0x68($sp)
/* 76514 800DD064 00E0A02D */ daddu $s4, $a3, $zero
/* 76518 800DD068 AFB00058 */ sw $s0, 0x58($sp)
/* 7651C 800DD06C 2410FFFF */ addiu $s0, $zero, -1
/* 76520 800DD070 AFBF006C */ sw $ra, 0x6c($sp)
/* 76524 800DD074 AFB1005C */ sw $s1, 0x5c($sp)
/* 76528 800DD078 F7BE0098 */ sdc1 $f30, 0x98($sp)
/* 7652C 800DD07C F7BC0090 */ sdc1 $f28, 0x90($sp)
/* 76530 800DD080 F7BA0088 */ sdc1 $f26, 0x88($sp)
/* 76534 800DD084 F7B80080 */ sdc1 $f24, 0x80($sp)
/* 76538 800DD088 F7B60078 */ sdc1 $f22, 0x78($sp)
/* 7653C 800DD08C F7B40070 */ sdc1 $f20, 0x70($sp)
/* 76540 800DD090 C6580000 */ lwc1 $f24, ($s2)
/* 76544 800DD094 C6760000 */ lwc1 $f22, ($s3)
/* 76548 800DD098 C6940000 */ lwc1 $f20, ($s4)
/* 7654C 800DD09C 8FB100B0 */ lw $s1, 0xb0($sp)
/* 76550 800DD0A0 3C013F80 */ lui $at, 0x3f80
/* 76554 800DD0A4 44811000 */ mtc1 $at, $f2
/* 76558 800DD0A8 4406B000 */ mfc1 $a2, $f22
/* 7655C 800DD0AC 4407A000 */ mfc1 $a3, $f20
/* 76560 800DD0B0 C6200000 */ lwc1 $f0, ($s1)
/* 76564 800DD0B4 4405C000 */ mfc1 $a1, $f24
/* 76568 800DD0B8 27A20038 */ addiu $v0, $sp, 0x38
/* 7656C 800DD0BC E7A00044 */ swc1 $f0, 0x44($sp)
/* 76570 800DD0C0 AFA2001C */ sw $v0, 0x1c($sp)
/* 76574 800DD0C4 27A2003C */ addiu $v0, $sp, 0x3c
/* 76578 800DD0C8 AFA20020 */ sw $v0, 0x20($sp)
/* 7657C 800DD0CC 27A20040 */ addiu $v0, $sp, 0x40
/* 76580 800DD0D0 AFA20024 */ sw $v0, 0x24($sp)
/* 76584 800DD0D4 27A20044 */ addiu $v0, $sp, 0x44
/* 76588 800DD0D8 AFA20028 */ sw $v0, 0x28($sp)
/* 7658C 800DD0DC 27A20048 */ addiu $v0, $sp, 0x48
/* 76590 800DD0E0 AFA2002C */ sw $v0, 0x2c($sp)
/* 76594 800DD0E4 27A2004C */ addiu $v0, $sp, 0x4c
/* 76598 800DD0E8 AFA20030 */ sw $v0, 0x30($sp)
/* 7659C 800DD0EC 27A20050 */ addiu $v0, $sp, 0x50
/* 765A0 800DD0F0 AFA00010 */ sw $zero, 0x10($sp)
/* 765A4 800DD0F4 E7A20014 */ swc1 $f2, 0x14($sp)
/* 765A8 800DD0F8 AFA00018 */ sw $zero, 0x18($sp)
/* 765AC 800DD0FC 0C017334 */ jal test_ray_colliders
/* 765B0 800DD100 AFA20034 */ sw $v0, 0x34($sp)
/* 765B4 800DD104 4600C686 */ mov.s $f26, $f24
/* 765B8 800DD108 4600B706 */ mov.s $f28, $f22
/* 765BC 800DD10C 0440000C */ bltz $v0, .L800DD140
/* 765C0 800DD110 4600A786 */ mov.s $f30, $f20
/* 765C4 800DD114 C6200000 */ lwc1 $f0, ($s1)
/* 765C8 800DD118 C7A20044 */ lwc1 $f2, 0x44($sp)
/* 765CC 800DD11C 4600103C */ c.lt.s $f2, $f0
/* 765D0 800DD120 00000000 */ nop
/* 765D4 800DD124 45020007 */ bc1fl .L800DD144
/* 765D8 800DD128 4600D606 */ mov.s $f24, $f26
/* 765DC 800DD12C 0040802D */ daddu $s0, $v0, $zero
/* 765E0 800DD130 E6220000 */ swc1 $f2, ($s1)
/* 765E4 800DD134 E6580000 */ swc1 $f24, ($s2)
/* 765E8 800DD138 E6760000 */ swc1 $f22, ($s3)
/* 765EC 800DD13C E6940000 */ swc1 $f20, ($s4)
.L800DD140:
/* 765F0 800DD140 4600D606 */ mov.s $f24, $f26
.L800DD144:
/* 765F4 800DD144 4600E586 */ mov.s $f22, $f28
/* 765F8 800DD148 3C014120 */ lui $at, 0x4120
/* 765FC 800DD14C 44811000 */ mtc1 $at, $f2
/* 76600 800DD150 44802000 */ mtc1 $zero, $f4
/* 76604 800DD154 3C013F80 */ lui $at, 0x3f80
/* 76608 800DD158 44810000 */ mtc1 $at, $f0
/* 7660C 800DD15C 27A20038 */ addiu $v0, $sp, 0x38
/* 76610 800DD160 E7A20044 */ swc1 $f2, 0x44($sp)
/* 76614 800DD164 AFA20018 */ sw $v0, 0x18($sp)
/* 76618 800DD168 27A2003C */ addiu $v0, $sp, 0x3c
/* 7661C 800DD16C AFA2001C */ sw $v0, 0x1c($sp)
/* 76620 800DD170 27A20040 */ addiu $v0, $sp, 0x40
/* 76624 800DD174 AFA20020 */ sw $v0, 0x20($sp)
/* 76628 800DD178 27A20044 */ addiu $v0, $sp, 0x44
/* 7662C 800DD17C AFA20024 */ sw $v0, 0x24($sp)
/* 76630 800DD180 27A20048 */ addiu $v0, $sp, 0x48
/* 76634 800DD184 AFA20028 */ sw $v0, 0x28($sp)
/* 76638 800DD188 27A2004C */ addiu $v0, $sp, 0x4c
/* 7663C 800DD18C AFA2002C */ sw $v0, 0x2c($sp)
/* 76640 800DD190 27A20050 */ addiu $v0, $sp, 0x50
/* 76644 800DD194 E7A00010 */ swc1 $f0, 0x10($sp)
/* 76648 800DD198 E7A40014 */ swc1 $f4, 0x14($sp)
/* 7664C 800DD19C AFA20030 */ sw $v0, 0x30($sp)
/* 76650 800DD1A0 8E860000 */ lw $a2, ($s4)
/* 76654 800DD1A4 44072000 */ mfc1 $a3, $f4
/* 76658 800DD1A8 C64C0000 */ lwc1 $f12, ($s2)
/* 7665C 800DD1AC C66E0000 */ lwc1 $f14, ($s3)
/* 76660 800DD1B0 0C017512 */ jal test_ray_entities
/* 76664 800DD1B4 4600F506 */ mov.s $f20, $f30
/* 76668 800DD1B8 0442000D */ bltzl $v0, .L800DD1F0
/* 7666C 800DD1BC 0200102D */ daddu $v0, $s0, $zero
/* 76670 800DD1C0 C6200000 */ lwc1 $f0, ($s1)
/* 76674 800DD1C4 C7A20044 */ lwc1 $f2, 0x44($sp)
/* 76678 800DD1C8 4600103C */ c.lt.s $f2, $f0
/* 7667C 800DD1CC 00000000 */ nop
/* 76680 800DD1D0 45020007 */ bc1fl .L800DD1F0
/* 76684 800DD1D4 0200102D */ daddu $v0, $s0, $zero
/* 76688 800DD1D8 34504000 */ ori $s0, $v0, 0x4000
/* 7668C 800DD1DC E6220000 */ swc1 $f2, ($s1)
/* 76690 800DD1E0 E6580000 */ swc1 $f24, ($s2)
/* 76694 800DD1E4 E6760000 */ swc1 $f22, ($s3)
/* 76698 800DD1E8 E6940000 */ swc1 $f20, ($s4)
/* 7669C 800DD1EC 0200102D */ daddu $v0, $s0, $zero
.L800DD1F0:
/* 766A0 800DD1F0 8FBF006C */ lw $ra, 0x6c($sp)
/* 766A4 800DD1F4 8FB40068 */ lw $s4, 0x68($sp)
/* 766A8 800DD1F8 8FB30064 */ lw $s3, 0x64($sp)
/* 766AC 800DD1FC 8FB20060 */ lw $s2, 0x60($sp)
/* 766B0 800DD200 8FB1005C */ lw $s1, 0x5c($sp)
/* 766B4 800DD204 8FB00058 */ lw $s0, 0x58($sp)
/* 766B8 800DD208 D7BE0098 */ ldc1 $f30, 0x98($sp)
/* 766BC 800DD20C D7BC0090 */ ldc1 $f28, 0x90($sp)
/* 766C0 800DD210 D7BA0088 */ ldc1 $f26, 0x88($sp)
/* 766C4 800DD214 D7B80080 */ ldc1 $f24, 0x80($sp)
/* 766C8 800DD218 D7B60078 */ ldc1 $f22, 0x78($sp)
/* 766CC 800DD21C D7B40070 */ ldc1 $f20, 0x70($sp)
/* 766D0 800DD220 03E00008 */ jr $ra
/* 766D4 800DD224 27BD00A0 */ addiu $sp, $sp, 0xa0

View File

@ -1,144 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel npc_raycast_up_corners
/* 766D8 800DD228 27BDFF88 */ addiu $sp, $sp, -0x78
/* 766DC 800DD22C F7B40050 */ sdc1 $f20, 0x50($sp)
/* 766E0 800DD230 C7B4008C */ lwc1 $f20, 0x8c($sp)
/* 766E4 800DD234 3C0140C9 */ lui $at, 0x40c9
/* 766E8 800DD238 34210FD0 */ ori $at, $at, 0xfd0
/* 766EC 800DD23C 44810000 */ mtc1 $at, $f0
/* 766F0 800DD240 AFB60040 */ sw $s6, 0x40($sp)
/* 766F4 800DD244 8FB60088 */ lw $s6, 0x88($sp)
/* 766F8 800DD248 F7B60058 */ sdc1 $f22, 0x58($sp)
/* 766FC 800DD24C C7B60090 */ lwc1 $f22, 0x90($sp)
/* 76700 800DD250 AFB5003C */ sw $s5, 0x3c($sp)
/* 76704 800DD254 0080A82D */ daddu $s5, $a0, $zero
/* 76708 800DD258 AFB70044 */ sw $s7, 0x44($sp)
/* 7670C 800DD25C 00A0B82D */ daddu $s7, $a1, $zero
/* 76710 800DD260 AFBE0048 */ sw $fp, 0x48($sp)
/* 76714 800DD264 4600A502 */ mul.s $f20, $f20, $f0
/* 76718 800DD268 00000000 */ nop
/* 7671C 800DD26C 3C0143B4 */ lui $at, 0x43b4
/* 76720 800DD270 44810000 */ mtc1 $at, $f0
/* 76724 800DD274 00C0F02D */ daddu $fp, $a2, $zero
/* 76728 800DD278 AFBF004C */ sw $ra, 0x4c($sp)
/* 7672C 800DD27C AFB40038 */ sw $s4, 0x38($sp)
/* 76730 800DD280 AFB30034 */ sw $s3, 0x34($sp)
/* 76734 800DD284 AFB20030 */ sw $s2, 0x30($sp)
/* 76738 800DD288 AFB1002C */ sw $s1, 0x2c($sp)
/* 7673C 800DD28C AFB00028 */ sw $s0, 0x28($sp)
/* 76740 800DD290 F7BC0070 */ sdc1 $f28, 0x70($sp)
/* 76744 800DD294 F7BA0068 */ sdc1 $f26, 0x68($sp)
/* 76748 800DD298 F7B80060 */ sdc1 $f24, 0x60($sp)
/* 7674C 800DD29C AFA70084 */ sw $a3, 0x84($sp)
/* 76750 800DD2A0 4600A503 */ div.s $f20, $f20, $f0
/* 76754 800DD2A4 0C00A85B */ jal sin_rad
/* 76758 800DD2A8 4600A306 */ mov.s $f12, $f20
/* 7675C 800DD2AC 4600B702 */ mul.s $f28, $f22, $f0
/* 76760 800DD2B0 00000000 */ nop
/* 76764 800DD2B4 2414FFFF */ addiu $s4, $zero, -1
/* 76768 800DD2B8 4600A306 */ mov.s $f12, $f20
/* 7676C 800DD2BC 0C00A874 */ jal cos_rad
/* 76770 800DD2C0 4600B587 */ neg.s $f22, $f22
/* 76774 800DD2C4 02A0202D */ daddu $a0, $s5, $zero
/* 76778 800DD2C8 27B30018 */ addiu $s3, $sp, 0x18
/* 7677C 800DD2CC 0260282D */ daddu $a1, $s3, $zero
/* 76780 800DD2D0 27B2001C */ addiu $s2, $sp, 0x1c
/* 76784 800DD2D4 0240302D */ daddu $a2, $s2, $zero
/* 76788 800DD2D8 27B10020 */ addiu $s1, $sp, 0x20
/* 7678C 800DD2DC 0220382D */ daddu $a3, $s1, $zero
/* 76790 800DD2E0 4600B682 */ mul.s $f26, $f22, $f0
/* 76794 800DD2E4 00000000 */ nop
/* 76798 800DD2E8 C6F60000 */ lwc1 $f22, ($s7)
/* 7679C 800DD2EC C7D80000 */ lwc1 $f24, ($fp)
/* 767A0 800DD2F0 8FA30084 */ lw $v1, 0x84($sp)
/* 767A4 800DD2F4 C6C00000 */ lwc1 $f0, ($s6)
/* 767A8 800DD2F8 C4740000 */ lwc1 $f20, ($v1)
/* 767AC 800DD2FC 461CB080 */ add.s $f2, $f22, $f28
/* 767B0 800DD300 27B00024 */ addiu $s0, $sp, 0x24
/* 767B4 800DD304 E7A00024 */ swc1 $f0, 0x24($sp)
/* 767B8 800DD308 461AA000 */ add.s $f0, $f20, $f26
/* 767BC 800DD30C E7B8001C */ swc1 $f24, 0x1c($sp)
/* 767C0 800DD310 E7A20018 */ swc1 $f2, 0x18($sp)
/* 767C4 800DD314 E7A00020 */ swc1 $f0, 0x20($sp)
/* 767C8 800DD318 0C037413 */ jal npc_raycast_up_corner
/* 767CC 800DD31C AFB00010 */ sw $s0, 0x10($sp)
/* 767D0 800DD320 04410025 */ bgez $v0, .L800DD3B8
/* 767D4 800DD324 02A0202D */ daddu $a0, $s5, $zero
/* 767D8 800DD328 0260282D */ daddu $a1, $s3, $zero
/* 767DC 800DD32C 461CB081 */ sub.s $f2, $f22, $f28
/* 767E0 800DD330 0240302D */ daddu $a2, $s2, $zero
/* 767E4 800DD334 0220382D */ daddu $a3, $s1, $zero
/* 767E8 800DD338 461AA001 */ sub.s $f0, $f20, $f26
/* 767EC 800DD33C E7B8001C */ swc1 $f24, 0x1c($sp)
/* 767F0 800DD340 E7A20018 */ swc1 $f2, 0x18($sp)
/* 767F4 800DD344 E7A00020 */ swc1 $f0, 0x20($sp)
/* 767F8 800DD348 0C037413 */ jal npc_raycast_up_corner
/* 767FC 800DD34C AFB00010 */ sw $s0, 0x10($sp)
/* 76800 800DD350 04410019 */ bgez $v0, .L800DD3B8
/* 76804 800DD354 02A0202D */ daddu $a0, $s5, $zero
/* 76808 800DD358 0260282D */ daddu $a1, $s3, $zero
/* 7680C 800DD35C 461AB080 */ add.s $f2, $f22, $f26
/* 76810 800DD360 0240302D */ daddu $a2, $s2, $zero
/* 76814 800DD364 0220382D */ daddu $a3, $s1, $zero
/* 76818 800DD368 461CA000 */ add.s $f0, $f20, $f28
/* 7681C 800DD36C E7B8001C */ swc1 $f24, 0x1c($sp)
/* 76820 800DD370 E7A20018 */ swc1 $f2, 0x18($sp)
/* 76824 800DD374 E7A00020 */ swc1 $f0, 0x20($sp)
/* 76828 800DD378 0C037413 */ jal npc_raycast_up_corner
/* 7682C 800DD37C AFB00010 */ sw $s0, 0x10($sp)
/* 76830 800DD380 0441000D */ bgez $v0, .L800DD3B8
/* 76834 800DD384 02A0202D */ daddu $a0, $s5, $zero
/* 76838 800DD388 0260282D */ daddu $a1, $s3, $zero
/* 7683C 800DD38C 461AB081 */ sub.s $f2, $f22, $f26
/* 76840 800DD390 0240302D */ daddu $a2, $s2, $zero
/* 76844 800DD394 0220382D */ daddu $a3, $s1, $zero
/* 76848 800DD398 461CA001 */ sub.s $f0, $f20, $f28
/* 7684C 800DD39C E7B8001C */ swc1 $f24, 0x1c($sp)
/* 76850 800DD3A0 E7A20018 */ swc1 $f2, 0x18($sp)
/* 76854 800DD3A4 E7A00020 */ swc1 $f0, 0x20($sp)
/* 76858 800DD3A8 0C037413 */ jal npc_raycast_up_corner
/* 7685C 800DD3AC AFB00010 */ sw $s0, 0x10($sp)
/* 76860 800DD3B0 0440000B */ bltz $v0, .L800DD3E0
/* 76864 800DD3B4 00000000 */ nop
.L800DD3B8:
/* 76868 800DD3B8 C7A00018 */ lwc1 $f0, 0x18($sp)
/* 7686C 800DD3BC E6E00000 */ swc1 $f0, ($s7)
/* 76870 800DD3C0 C7A0001C */ lwc1 $f0, 0x1c($sp)
/* 76874 800DD3C4 E7C00000 */ swc1 $f0, ($fp)
/* 76878 800DD3C8 C7A00020 */ lwc1 $f0, 0x20($sp)
/* 7687C 800DD3CC 8FA30084 */ lw $v1, 0x84($sp)
/* 76880 800DD3D0 E4600000 */ swc1 $f0, ($v1)
/* 76884 800DD3D4 C7A00024 */ lwc1 $f0, 0x24($sp)
/* 76888 800DD3D8 0040A02D */ daddu $s4, $v0, $zero
/* 7688C 800DD3DC E6C00000 */ swc1 $f0, ($s6)
.L800DD3E0:
/* 76890 800DD3E0 06810009 */ bgez $s4, .L800DD408
/* 76894 800DD3E4 0280102D */ daddu $v0, $s4, $zero
/* 76898 800DD3E8 C7A00018 */ lwc1 $f0, 0x18($sp)
/* 7689C 800DD3EC E6E00000 */ swc1 $f0, ($s7)
/* 768A0 800DD3F0 C7A0001C */ lwc1 $f0, 0x1c($sp)
/* 768A4 800DD3F4 E7C00000 */ swc1 $f0, ($fp)
/* 768A8 800DD3F8 C7A00020 */ lwc1 $f0, 0x20($sp)
/* 768AC 800DD3FC 8FA30084 */ lw $v1, 0x84($sp)
/* 768B0 800DD400 E4600000 */ swc1 $f0, ($v1)
/* 768B4 800DD404 AEC00000 */ sw $zero, ($s6)
.L800DD408:
/* 768B8 800DD408 8FBF004C */ lw $ra, 0x4c($sp)
/* 768BC 800DD40C 8FBE0048 */ lw $fp, 0x48($sp)
/* 768C0 800DD410 8FB70044 */ lw $s7, 0x44($sp)
/* 768C4 800DD414 8FB60040 */ lw $s6, 0x40($sp)
/* 768C8 800DD418 8FB5003C */ lw $s5, 0x3c($sp)
/* 768CC 800DD41C 8FB40038 */ lw $s4, 0x38($sp)
/* 768D0 800DD420 8FB30034 */ lw $s3, 0x34($sp)
/* 768D4 800DD424 8FB20030 */ lw $s2, 0x30($sp)
/* 768D8 800DD428 8FB1002C */ lw $s1, 0x2c($sp)
/* 768DC 800DD42C 8FB00028 */ lw $s0, 0x28($sp)
/* 768E0 800DD430 D7BC0070 */ ldc1 $f28, 0x70($sp)
/* 768E4 800DD434 D7BA0068 */ ldc1 $f26, 0x68($sp)
/* 768E8 800DD438 D7B80060 */ ldc1 $f24, 0x60($sp)
/* 768EC 800DD43C D7B60058 */ ldc1 $f22, 0x58($sp)
/* 768F0 800DD440 D7B40050 */ ldc1 $f20, 0x50($sp)
/* 768F4 800DD444 03E00008 */ jr $ra
/* 768F8 800DD448 27BD0078 */ addiu $sp, $sp, 0x78

View File

@ -1,151 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel npc_test_move_complex_with_slipping
/* 77244 800DDD94 27BDFF90 */ addiu $sp, $sp, -0x70
/* 77248 800DDD98 F7B40058 */ sdc1 $f20, 0x58($sp)
/* 7724C 800DDD9C C7B4008C */ lwc1 $f20, 0x8c($sp)
/* 77250 800DDDA0 C7A40080 */ lwc1 $f4, 0x80($sp)
/* 77254 800DDDA4 AFB7004C */ sw $s7, 0x4c($sp)
/* 77258 800DDDA8 0080B82D */ daddu $s7, $a0, $zero
/* 7725C 800DDDAC AFB10034 */ sw $s1, 0x34($sp)
/* 77260 800DDDB0 00A0882D */ daddu $s1, $a1, $zero
/* 77264 800DDDB4 AFB60048 */ sw $s6, 0x48($sp)
/* 77268 800DDDB8 00C0B02D */ daddu $s6, $a2, $zero
/* 7726C 800DDDBC AFB20038 */ sw $s2, 0x38($sp)
/* 77270 800DDDC0 00E0902D */ daddu $s2, $a3, $zero
/* 77274 800DDDC4 AFB40040 */ sw $s4, 0x40($sp)
/* 77278 800DDDC8 0000A02D */ daddu $s4, $zero, $zero
/* 7727C 800DDDCC F7B80068 */ sdc1 $f24, 0x68($sp)
/* 77280 800DDDD0 C7B80084 */ lwc1 $f24, 0x84($sp)
/* 77284 800DDDD4 C7A20088 */ lwc1 $f2, 0x88($sp)
/* 77288 800DDDD8 AFBF0050 */ sw $ra, 0x50($sp)
/* 7728C 800DDDDC AFB50044 */ sw $s5, 0x44($sp)
/* 77290 800DDDE0 AFB3003C */ sw $s3, 0x3c($sp)
/* 77294 800DDDE4 AFB00030 */ sw $s0, 0x30($sp)
/* 77298 800DDDE8 F7B60060 */ sdc1 $f22, 0x60($sp)
/* 7729C 800DDDEC C6200000 */ lwc1 $f0, ($s1)
/* 772A0 800DDDF0 27B50020 */ addiu $s5, $sp, 0x20
/* 772A4 800DDDF4 E7A00020 */ swc1 $f0, 0x20($sp)
/* 772A8 800DDDF8 C6C00000 */ lwc1 $f0, ($s6)
/* 772AC 800DDDFC 02A0282D */ daddu $a1, $s5, $zero
/* 772B0 800DDE00 46020000 */ add.s $f0, $f0, $f2
/* 772B4 800DDE04 3C013F80 */ lui $at, 0x3f80
/* 772B8 800DDE08 44811000 */ mtc1 $at, $f2
/* 772BC 800DDE0C 27B30024 */ addiu $s3, $sp, 0x24
/* 772C0 800DDE10 46020001 */ sub.s $f0, $f0, $f2
/* 772C4 800DDE14 3C013F00 */ lui $at, 0x3f00
/* 772C8 800DDE18 44811000 */ mtc1 $at, $f2
/* 772CC 800DDE1C 0260302D */ daddu $a2, $s3, $zero
/* 772D0 800DDE20 4602A502 */ mul.s $f20, $f20, $f2
/* 772D4 800DDE24 00000000 */ nop
/* 772D8 800DDE28 27B00028 */ addiu $s0, $sp, 0x28
/* 772DC 800DDE2C 0200382D */ daddu $a3, $s0, $zero
/* 772E0 800DDE30 E7A00024 */ swc1 $f0, 0x24($sp)
/* 772E4 800DDE34 C6400000 */ lwc1 $f0, ($s2)
/* 772E8 800DDE38 46002585 */ abs.s $f22, $f4
/* 772EC 800DDE3C E7A00028 */ swc1 $f0, 0x28($sp)
/* 772F0 800DDE40 E7B60010 */ swc1 $f22, 0x10($sp)
/* 772F4 800DDE44 E7B80014 */ swc1 $f24, 0x14($sp)
/* 772F8 800DDE48 0C037586 */ jal npc_test_move_with_slipping
/* 772FC 800DDE4C E7B40018 */ swc1 $f20, 0x18($sp)
/* 77300 800DDE50 04400006 */ bltz $v0, .L800DDE6C
/* 77304 800DDE54 00000000 */ nop
/* 77308 800DDE58 C7A00020 */ lwc1 $f0, 0x20($sp)
/* 7730C 800DDE5C E6200000 */ swc1 $f0, ($s1)
/* 77310 800DDE60 C7A00028 */ lwc1 $f0, 0x28($sp)
/* 77314 800DDE64 24140004 */ addiu $s4, $zero, 4
/* 77318 800DDE68 E6400000 */ swc1 $f0, ($s2)
.L800DDE6C:
/* 7731C 800DDE6C C6200000 */ lwc1 $f0, ($s1)
/* 77320 800DDE70 3C0141A0 */ lui $at, 0x41a0
/* 77324 800DDE74 44811000 */ mtc1 $at, $f2
/* 77328 800DDE78 E7A00020 */ swc1 $f0, 0x20($sp)
/* 7732C 800DDE7C C6C00000 */ lwc1 $f0, ($s6)
/* 77330 800DDE80 02E0202D */ daddu $a0, $s7, $zero
/* 77334 800DDE84 46020000 */ add.s $f0, $f0, $f2
/* 77338 800DDE88 02A0282D */ daddu $a1, $s5, $zero
/* 7733C 800DDE8C 0260302D */ daddu $a2, $s3, $zero
/* 77340 800DDE90 E7A00024 */ swc1 $f0, 0x24($sp)
/* 77344 800DDE94 C6400000 */ lwc1 $f0, ($s2)
/* 77348 800DDE98 0200382D */ daddu $a3, $s0, $zero
/* 7734C 800DDE9C E7A00028 */ swc1 $f0, 0x28($sp)
/* 77350 800DDEA0 E7B60010 */ swc1 $f22, 0x10($sp)
/* 77354 800DDEA4 E7B80014 */ swc1 $f24, 0x14($sp)
/* 77358 800DDEA8 0C037586 */ jal npc_test_move_with_slipping
/* 7735C 800DDEAC E7B40018 */ swc1 $f20, 0x18($sp)
/* 77360 800DDEB0 04400006 */ bltz $v0, .L800DDECC
/* 77364 800DDEB4 00000000 */ nop
/* 77368 800DDEB8 C7A00020 */ lwc1 $f0, 0x20($sp)
/* 7736C 800DDEBC E6200000 */ swc1 $f0, ($s1)
/* 77370 800DDEC0 C7A00028 */ lwc1 $f0, 0x28($sp)
/* 77374 800DDEC4 24140003 */ addiu $s4, $zero, 3
/* 77378 800DDEC8 E6400000 */ swc1 $f0, ($s2)
.L800DDECC:
/* 7737C 800DDECC C6200000 */ lwc1 $f0, ($s1)
/* 77380 800DDED0 3C014170 */ lui $at, 0x4170
/* 77384 800DDED4 342128F6 */ ori $at, $at, 0x28f6
/* 77388 800DDED8 44811000 */ mtc1 $at, $f2
/* 7738C 800DDEDC E7A00020 */ swc1 $f0, 0x20($sp)
/* 77390 800DDEE0 C6C00000 */ lwc1 $f0, ($s6)
/* 77394 800DDEE4 02E0202D */ daddu $a0, $s7, $zero
/* 77398 800DDEE8 46020000 */ add.s $f0, $f0, $f2
/* 7739C 800DDEEC 02A0282D */ daddu $a1, $s5, $zero
/* 773A0 800DDEF0 0260302D */ daddu $a2, $s3, $zero
/* 773A4 800DDEF4 E7A00024 */ swc1 $f0, 0x24($sp)
/* 773A8 800DDEF8 C6400000 */ lwc1 $f0, ($s2)
/* 773AC 800DDEFC 0200382D */ daddu $a3, $s0, $zero
/* 773B0 800DDF00 E7A00028 */ swc1 $f0, 0x28($sp)
/* 773B4 800DDF04 E7B60010 */ swc1 $f22, 0x10($sp)
/* 773B8 800DDF08 E7B80014 */ swc1 $f24, 0x14($sp)
/* 773BC 800DDF0C 0C037586 */ jal npc_test_move_with_slipping
/* 773C0 800DDF10 E7B40018 */ swc1 $f20, 0x18($sp)
/* 773C4 800DDF14 04400006 */ bltz $v0, .L800DDF30
/* 773C8 800DDF18 00000000 */ nop
/* 773CC 800DDF1C C7A00020 */ lwc1 $f0, 0x20($sp)
/* 773D0 800DDF20 E6200000 */ swc1 $f0, ($s1)
/* 773D4 800DDF24 C7A00028 */ lwc1 $f0, 0x28($sp)
/* 773D8 800DDF28 24140002 */ addiu $s4, $zero, 2
/* 773DC 800DDF2C E6400000 */ swc1 $f0, ($s2)
.L800DDF30:
/* 773E0 800DDF30 C6200000 */ lwc1 $f0, ($s1)
/* 773E4 800DDF34 3C014120 */ lui $at, 0x4120
/* 773E8 800DDF38 342128F6 */ ori $at, $at, 0x28f6
/* 773EC 800DDF3C 44811000 */ mtc1 $at, $f2
/* 773F0 800DDF40 E7A00020 */ swc1 $f0, 0x20($sp)
/* 773F4 800DDF44 C6C00000 */ lwc1 $f0, ($s6)
/* 773F8 800DDF48 02E0202D */ daddu $a0, $s7, $zero
/* 773FC 800DDF4C 46020000 */ add.s $f0, $f0, $f2
/* 77400 800DDF50 02A0282D */ daddu $a1, $s5, $zero
/* 77404 800DDF54 0260302D */ daddu $a2, $s3, $zero
/* 77408 800DDF58 E7A00024 */ swc1 $f0, 0x24($sp)
/* 7740C 800DDF5C C6400000 */ lwc1 $f0, ($s2)
/* 77410 800DDF60 0200382D */ daddu $a3, $s0, $zero
/* 77414 800DDF64 E7A00028 */ swc1 $f0, 0x28($sp)
/* 77418 800DDF68 E7B60010 */ swc1 $f22, 0x10($sp)
/* 7741C 800DDF6C E7B80014 */ swc1 $f24, 0x14($sp)
/* 77420 800DDF70 0C037586 */ jal npc_test_move_with_slipping
/* 77424 800DDF74 E7B40018 */ swc1 $f20, 0x18($sp)
/* 77428 800DDF78 C7A00020 */ lwc1 $f0, 0x20($sp)
/* 7742C 800DDF7C E6200000 */ swc1 $f0, ($s1)
/* 77430 800DDF80 C7A00028 */ lwc1 $f0, 0x28($sp)
/* 77434 800DDF84 04400002 */ bltz $v0, .L800DDF90
/* 77438 800DDF88 E6400000 */ swc1 $f0, ($s2)
/* 7743C 800DDF8C 24140001 */ addiu $s4, $zero, 1
.L800DDF90:
/* 77440 800DDF90 0280102D */ daddu $v0, $s4, $zero
/* 77444 800DDF94 8FBF0050 */ lw $ra, 0x50($sp)
/* 77448 800DDF98 8FB7004C */ lw $s7, 0x4c($sp)
/* 7744C 800DDF9C 8FB60048 */ lw $s6, 0x48($sp)
/* 77450 800DDFA0 8FB50044 */ lw $s5, 0x44($sp)
/* 77454 800DDFA4 8FB40040 */ lw $s4, 0x40($sp)
/* 77458 800DDFA8 8FB3003C */ lw $s3, 0x3c($sp)
/* 7745C 800DDFAC 8FB20038 */ lw $s2, 0x38($sp)
/* 77460 800DDFB0 8FB10034 */ lw $s1, 0x34($sp)
/* 77464 800DDFB4 8FB00030 */ lw $s0, 0x30($sp)
/* 77468 800DDFB8 D7B80068 */ ldc1 $f24, 0x68($sp)
/* 7746C 800DDFBC D7B60060 */ ldc1 $f22, 0x60($sp)
/* 77470 800DDFC0 D7B40058 */ ldc1 $f20, 0x58($sp)
/* 77474 800DDFC4 03E00008 */ jr $ra
/* 77478 800DDFC8 27BD0070 */ addiu $sp, $sp, 0x70
/* 7747C 800DDFCC 00000000 */ nop

View File

@ -1,175 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel player_raycast_down
/* 779FC 800DE54C 27BDFF78 */ addiu $sp, $sp, -0x88
/* 77A00 800DE550 AFB20060 */ sw $s2, 0x60($sp)
/* 77A04 800DE554 0080902D */ daddu $s2, $a0, $zero
/* 77A08 800DE558 AFB30064 */ sw $s3, 0x64($sp)
/* 77A0C 800DE55C 00A0982D */ daddu $s3, $a1, $zero
/* 77A10 800DE560 AFB40068 */ sw $s4, 0x68($sp)
/* 77A14 800DE564 00C0A02D */ daddu $s4, $a2, $zero
/* 77A18 800DE568 AFB5006C */ sw $s5, 0x6c($sp)
/* 77A1C 800DE56C 00E0A82D */ daddu $s5, $a3, $zero
/* 77A20 800DE570 AFBF0070 */ sw $ra, 0x70($sp)
/* 77A24 800DE574 AFB1005C */ sw $s1, 0x5c($sp)
/* 77A28 800DE578 AFB00058 */ sw $s0, 0x58($sp)
/* 77A2C 800DE57C F7B60080 */ sdc1 $f22, 0x80($sp)
/* 77A30 800DE580 F7B40078 */ sdc1 $f20, 0x78($sp)
/* 77A34 800DE584 C6A20000 */ lwc1 $f2, ($s5)
/* 77A38 800DE588 44802000 */ mtc1 $zero, $f4
/* 77A3C 800DE58C 3C01BF80 */ lui $at, 0xbf80
/* 77A40 800DE590 44810000 */ mtc1 $at, $f0
/* 77A44 800DE594 27A20038 */ addiu $v0, $sp, 0x38
/* 77A48 800DE598 E7A20044 */ swc1 $f2, 0x44($sp)
/* 77A4C 800DE59C AFA20018 */ sw $v0, 0x18($sp)
/* 77A50 800DE5A0 27A2003C */ addiu $v0, $sp, 0x3c
/* 77A54 800DE5A4 AFA2001C */ sw $v0, 0x1c($sp)
/* 77A58 800DE5A8 27A20040 */ addiu $v0, $sp, 0x40
/* 77A5C 800DE5AC AFA20020 */ sw $v0, 0x20($sp)
/* 77A60 800DE5B0 27A20044 */ addiu $v0, $sp, 0x44
/* 77A64 800DE5B4 AFA20024 */ sw $v0, 0x24($sp)
/* 77A68 800DE5B8 27A20048 */ addiu $v0, $sp, 0x48
/* 77A6C 800DE5BC AFA20028 */ sw $v0, 0x28($sp)
/* 77A70 800DE5C0 27A2004C */ addiu $v0, $sp, 0x4c
/* 77A74 800DE5C4 AFA2002C */ sw $v0, 0x2c($sp)
/* 77A78 800DE5C8 27A20050 */ addiu $v0, $sp, 0x50
/* 77A7C 800DE5CC E7A00010 */ swc1 $f0, 0x10($sp)
/* 77A80 800DE5D0 E7A40014 */ swc1 $f4, 0x14($sp)
/* 77A84 800DE5D4 AFA20030 */ sw $v0, 0x30($sp)
/* 77A88 800DE5D8 C64C0000 */ lwc1 $f12, ($s2)
/* 77A8C 800DE5DC C66E0000 */ lwc1 $f14, ($s3)
/* 77A90 800DE5E0 8E860000 */ lw $a2, ($s4)
/* 77A94 800DE5E4 44072000 */ mfc1 $a3, $f4
/* 77A98 800DE5E8 0C017512 */ jal test_ray_entities
/* 77A9C 800DE5EC 2411FFFF */ addiu $s1, $zero, -1
/* 77AA0 800DE5F0 0040802D */ daddu $s0, $v0, $zero
/* 77AA4 800DE5F4 0600000E */ bltz $s0, .L800DE630
/* 77AA8 800DE5F8 00000000 */ nop
/* 77AAC 800DE5FC 0C04417A */ jal get_entity_by_index
/* 77AB0 800DE600 0200202D */ daddu $a0, $s0, $zero
/* 77AB4 800DE604 0040202D */ daddu $a0, $v0, $zero
/* 77AB8 800DE608 9082000B */ lbu $v0, 0xb($a0)
/* 77ABC 800DE60C 2C4200FF */ sltiu $v0, $v0, 0xff
/* 77AC0 800DE610 10400006 */ beqz $v0, .L800DE62C
/* 77AC4 800DE614 24030004 */ addiu $v1, $zero, 4
/* 77AC8 800DE618 8C820000 */ lw $v0, ($a0)
/* 77ACC 800DE61C A0830007 */ sb $v1, 7($a0)
/* 77AD0 800DE620 34420040 */ ori $v0, $v0, 0x40
/* 77AD4 800DE624 0803798C */ j .L800DE630
/* 77AD8 800DE628 AC820000 */ sw $v0, ($a0)
.L800DE62C:
/* 77ADC 800DE62C 36114000 */ ori $s1, $s0, 0x4000
.L800DE630:
/* 77AE0 800DE630 3C01BF80 */ lui $at, 0xbf80
/* 77AE4 800DE634 44810000 */ mtc1 $at, $f0
/* 77AE8 800DE638 27A20038 */ addiu $v0, $sp, 0x38
/* 77AEC 800DE63C AFA2001C */ sw $v0, 0x1c($sp)
/* 77AF0 800DE640 27A2003C */ addiu $v0, $sp, 0x3c
/* 77AF4 800DE644 AFA20020 */ sw $v0, 0x20($sp)
/* 77AF8 800DE648 27A20040 */ addiu $v0, $sp, 0x40
/* 77AFC 800DE64C AFA20024 */ sw $v0, 0x24($sp)
/* 77B00 800DE650 27A20044 */ addiu $v0, $sp, 0x44
/* 77B04 800DE654 AFA20028 */ sw $v0, 0x28($sp)
/* 77B08 800DE658 27A20048 */ addiu $v0, $sp, 0x48
/* 77B0C 800DE65C AFA2002C */ sw $v0, 0x2c($sp)
/* 77B10 800DE660 27A2004C */ addiu $v0, $sp, 0x4c
/* 77B14 800DE664 AFA20030 */ sw $v0, 0x30($sp)
/* 77B18 800DE668 27A20050 */ addiu $v0, $sp, 0x50
/* 77B1C 800DE66C AFA00010 */ sw $zero, 0x10($sp)
/* 77B20 800DE670 AFA00018 */ sw $zero, 0x18($sp)
/* 77B24 800DE674 AFA20034 */ sw $v0, 0x34($sp)
/* 77B28 800DE678 E7A00014 */ swc1 $f0, 0x14($sp)
/* 77B2C 800DE67C 8E660000 */ lw $a2, ($s3)
/* 77B30 800DE680 8E870000 */ lw $a3, ($s4)
/* 77B34 800DE684 8E450000 */ lw $a1, ($s2)
/* 77B38 800DE688 0C017334 */ jal test_ray_colliders
/* 77B3C 800DE68C 3C040001 */ lui $a0, 1
/* 77B40 800DE690 04430001 */ bgezl $v0, .L800DE698
/* 77B44 800DE694 0040882D */ daddu $s1, $v0, $zero
.L800DE698:
/* 77B48 800DE698 06200041 */ bltz $s1, .L800DE7A0
/* 77B4C 800DE69C 00000000 */ nop
/* 77B50 800DE6A0 C7A00044 */ lwc1 $f0, 0x44($sp)
/* 77B54 800DE6A4 E6A00000 */ swc1 $f0, ($s5)
/* 77B58 800DE6A8 C7A00038 */ lwc1 $f0, 0x38($sp)
/* 77B5C 800DE6AC E6400000 */ swc1 $f0, ($s2)
/* 77B60 800DE6B0 C7A0003C */ lwc1 $f0, 0x3c($sp)
/* 77B64 800DE6B4 E6600000 */ swc1 $f0, ($s3)
/* 77B68 800DE6B8 C7A00040 */ lwc1 $f0, 0x40($sp)
/* 77B6C 800DE6BC 3C108007 */ lui $s0, %hi(gGameStatusPtr)
/* 77B70 800DE6C0 2610419C */ addiu $s0, $s0, %lo(gGameStatusPtr)
/* 77B74 800DE6C4 E6800000 */ swc1 $f0, ($s4)
/* 77B78 800DE6C8 8E020000 */ lw $v0, ($s0)
/* 77B7C 800DE6CC C7A00048 */ lwc1 $f0, 0x48($sp)
/* 77B80 800DE6D0 C7A2004C */ lwc1 $f2, 0x4c($sp)
/* 77B84 800DE6D4 C7A40050 */ lwc1 $f4, 0x50($sp)
/* 77B88 800DE6D8 E4400128 */ swc1 $f0, 0x128($v0)
/* 77B8C 800DE6DC E442012C */ swc1 $f2, 0x12c($v0)
/* 77B90 800DE6E0 0C00A788 */ jal get_player_normal_yaw
/* 77B94 800DE6E4 E4440130 */ swc1 $f4, 0x130($v0)
/* 77B98 800DE6E8 3C018011 */ lui $at, %hi(D_8010C938)
/* 77B9C 800DE6EC E420C938 */ swc1 $f0, %lo(D_8010C938)($at)
/* 77BA0 800DE6F0 0C00A794 */ jal get_player_normal_pitch
/* 77BA4 800DE6F4 00000000 */ nop
/* 77BA8 800DE6F8 C7A40050 */ lwc1 $f4, 0x50($sp)
/* 77BAC 800DE6FC 3C014059 */ lui $at, 0x4059
/* 77BB0 800DE700 4481A800 */ mtc1 $at, $f21
/* 77BB4 800DE704 4480A000 */ mtc1 $zero, $f20
/* 77BB8 800DE708 46002121 */ cvt.d.s $f4, $f4
/* 77BBC 800DE70C 46342102 */ mul.d $f4, $f4, $f20
/* 77BC0 800DE710 00000000 */ nop
/* 77BC4 800DE714 C7A2004C */ lwc1 $f2, 0x4c($sp)
/* 77BC8 800DE718 460010A1 */ cvt.d.s $f2, $f2
/* 77BCC 800DE71C 46341082 */ mul.d $f2, $f2, $f20
/* 77BD0 800DE720 00000000 */ nop
/* 77BD4 800DE724 4480B000 */ mtc1 $zero, $f22
/* 77BD8 800DE728 3C018011 */ lui $at, %hi(D_8010C990)
/* 77BDC 800DE72C E420C990 */ swc1 $f0, %lo(D_8010C990)($at)
/* 77BE0 800DE730 4600B306 */ mov.s $f12, $f22
/* 77BE4 800DE734 46202120 */ cvt.s.d $f4, $f4
/* 77BE8 800DE738 462010A0 */ cvt.s.d $f2, $f2
/* 77BEC 800DE73C 44062000 */ mfc1 $a2, $f4
/* 77BF0 800DE740 44071000 */ mfc1 $a3, $f2
/* 77BF4 800DE744 0C00A720 */ jal atan2
/* 77BF8 800DE748 4600B386 */ mov.s $f14, $f22
/* 77BFC 800DE74C C7A40048 */ lwc1 $f4, 0x48($sp)
/* 77C00 800DE750 46002121 */ cvt.d.s $f4, $f4
/* 77C04 800DE754 46342102 */ mul.d $f4, $f4, $f20
/* 77C08 800DE758 00000000 */ nop
/* 77C0C 800DE75C C7A2004C */ lwc1 $f2, 0x4c($sp)
/* 77C10 800DE760 460010A1 */ cvt.d.s $f2, $f2
/* 77C14 800DE764 46341082 */ mul.d $f2, $f2, $f20
/* 77C18 800DE768 00000000 */ nop
/* 77C1C 800DE76C 4600B306 */ mov.s $f12, $f22
/* 77C20 800DE770 8E020000 */ lw $v0, ($s0)
/* 77C24 800DE774 46202120 */ cvt.s.d $f4, $f4
/* 77C28 800DE778 462010A0 */ cvt.s.d $f2, $f2
/* 77C2C 800DE77C 44062000 */ mfc1 $a2, $f4
/* 77C30 800DE780 44071000 */ mfc1 $a3, $f2
/* 77C34 800DE784 46006386 */ mov.s $f14, $f12
/* 77C38 800DE788 E440011C */ swc1 $f0, 0x11c($v0)
/* 77C3C 800DE78C 0C00A720 */ jal atan2
/* 77C40 800DE790 E44C0120 */ swc1 $f12, 0x120($v0)
/* 77C44 800DE794 8E020000 */ lw $v0, ($s0)
/* 77C48 800DE798 080379ED */ j .L800DE7B4
/* 77C4C 800DE79C E4400124 */ swc1 $f0, 0x124($v0)
.L800DE7A0:
/* 77C50 800DE7A0 3C028007 */ lui $v0, %hi(gGameStatusPtr)
/* 77C54 800DE7A4 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0)
/* 77C58 800DE7A8 AC40011C */ sw $zero, 0x11c($v0)
/* 77C5C 800DE7AC AC400120 */ sw $zero, 0x120($v0)
/* 77C60 800DE7B0 AC400124 */ sw $zero, 0x124($v0)
.L800DE7B4:
/* 77C64 800DE7B4 0220102D */ daddu $v0, $s1, $zero
/* 77C68 800DE7B8 8FBF0070 */ lw $ra, 0x70($sp)
/* 77C6C 800DE7BC 8FB5006C */ lw $s5, 0x6c($sp)
/* 77C70 800DE7C0 8FB40068 */ lw $s4, 0x68($sp)
/* 77C74 800DE7C4 8FB30064 */ lw $s3, 0x64($sp)
/* 77C78 800DE7C8 8FB20060 */ lw $s2, 0x60($sp)
/* 77C7C 800DE7CC 8FB1005C */ lw $s1, 0x5c($sp)
/* 77C80 800DE7D0 8FB00058 */ lw $s0, 0x58($sp)
/* 77C84 800DE7D4 D7B60080 */ ldc1 $f22, 0x80($sp)
/* 77C88 800DE7D8 D7B40078 */ ldc1 $f20, 0x78($sp)
/* 77C8C 800DE7DC 03E00008 */ jr $ra
/* 77C90 800DE7E0 27BD0088 */ addiu $sp, $sp, 0x88

View File

@ -1,204 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel player_raycast_general
/* 7830C 800DEE5C 27BDFF70 */ addiu $sp, $sp, -0x90
/* 78310 800DEE60 F7B40060 */ sdc1 $f20, 0x60($sp)
/* 78314 800DEE64 4485A000 */ mtc1 $a1, $f20
/* 78318 800DEE68 F7BA0078 */ sdc1 $f26, 0x78($sp)
/* 7831C 800DEE6C 4486D000 */ mtc1 $a2, $f26
/* 78320 800DEE70 F7BC0080 */ sdc1 $f28, 0x80($sp)
/* 78324 800DEE74 4487E000 */ mtc1 $a3, $f28
/* 78328 800DEE78 F7BE0088 */ sdc1 $f30, 0x88($sp)
/* 7832C 800DEE7C C7BE00A0 */ lwc1 $f30, 0xa0($sp)
/* 78330 800DEE80 F7B60068 */ sdc1 $f22, 0x68($sp)
/* 78334 800DEE84 C7B600A4 */ lwc1 $f22, 0xa4($sp)
/* 78338 800DEE88 F7B80070 */ sdc1 $f24, 0x70($sp)
/* 7833C 800DEE8C C7B800A8 */ lwc1 $f24, 0xa8($sp)
/* 78340 800DEE90 AFB5004C */ sw $s5, 0x4c($sp)
/* 78344 800DEE94 8FB500AC */ lw $s5, 0xac($sp)
/* 78348 800DEE98 AFB60050 */ sw $s6, 0x50($sp)
/* 7834C 800DEE9C 8FB600B0 */ lw $s6, 0xb0($sp)
/* 78350 800DEEA0 AFB70054 */ sw $s7, 0x54($sp)
/* 78354 800DEEA4 8FB700B4 */ lw $s7, 0xb4($sp)
/* 78358 800DEEA8 AFBE0058 */ sw $fp, 0x58($sp)
/* 7835C 800DEEAC 8FBE00B8 */ lw $fp, 0xb8($sp)
/* 78360 800DEEB0 AFB40048 */ sw $s4, 0x48($sp)
/* 78364 800DEEB4 8FB400C0 */ lw $s4, 0xc0($sp)
/* 78368 800DEEB8 AFB30044 */ sw $s3, 0x44($sp)
/* 7836C 800DEEBC 8FB300C4 */ lw $s3, 0xc4($sp)
/* 78370 800DEEC0 8FA800BC */ lw $t0, 0xbc($sp)
/* 78374 800DEEC4 AFB20040 */ sw $s2, 0x40($sp)
/* 78378 800DEEC8 0080902D */ daddu $s2, $a0, $zero
/* 7837C 800DEECC AFB1003C */ sw $s1, 0x3c($sp)
/* 78380 800DEED0 2411FFFF */ addiu $s1, $zero, -1
/* 78384 800DEED4 AFBF005C */ sw $ra, 0x5c($sp)
/* 78388 800DEED8 AFB00038 */ sw $s0, 0x38($sp)
/* 7838C 800DEEDC 4600A306 */ mov.s $f12, $f20
/* 78390 800DEEE0 4406E000 */ mfc1 $a2, $f28
/* 78394 800DEEE4 4407F000 */ mfc1 $a3, $f30
/* 78398 800DEEE8 4600D386 */ mov.s $f14, $f26
/* 7839C 800DEEEC E7B60010 */ swc1 $f22, 0x10($sp)
/* 783A0 800DEEF0 E7B80014 */ swc1 $f24, 0x14($sp)
/* 783A4 800DEEF4 AFB50018 */ sw $s5, 0x18($sp)
/* 783A8 800DEEF8 AFB6001C */ sw $s6, 0x1c($sp)
/* 783AC 800DEEFC AFB70020 */ sw $s7, 0x20($sp)
/* 783B0 800DEF00 AFBE0024 */ sw $fp, 0x24($sp)
/* 783B4 800DEF04 AFA80028 */ sw $t0, 0x28($sp)
/* 783B8 800DEF08 AFB4002C */ sw $s4, 0x2c($sp)
/* 783BC 800DEF0C 0C017512 */ jal test_ray_entities
/* 783C0 800DEF10 AFB30030 */ sw $s3, 0x30($sp)
/* 783C4 800DEF14 0040802D */ daddu $s0, $v0, $zero
/* 783C8 800DEF18 0600000D */ bltz $s0, .L800DEF50
/* 783CC 800DEF1C 24020003 */ addiu $v0, $zero, 3
/* 783D0 800DEF20 0C04417A */ jal get_entity_by_index
/* 783D4 800DEF24 0200202D */ daddu $a0, $s0, $zero
/* 783D8 800DEF28 0040182D */ daddu $v1, $v0, $zero
/* 783DC 800DEF2C 9062000B */ lbu $v0, 0xb($v1)
/* 783E0 800DEF30 2C4200FF */ sltiu $v0, $v0, 0xff
/* 783E4 800DEF34 50400019 */ beql $v0, $zero, .L800DEF9C
/* 783E8 800DEF38 36114000 */ ori $s1, $s0, 0x4000
/* 783EC 800DEF3C 8C620000 */ lw $v0, ($v1)
/* 783F0 800DEF40 A0600007 */ sb $zero, 7($v1)
/* 783F4 800DEF44 34420040 */ ori $v0, $v0, 0x40
/* 783F8 800DEF48 08037BE7 */ j .L800DEF9C
/* 783FC 800DEF4C AC620000 */ sw $v0, ($v1)
.L800DEF50:
/* 78400 800DEF50 16420013 */ bne $s2, $v0, .L800DEFA0
/* 78404 800DEF54 24020001 */ addiu $v0, $zero, 1
/* 78408 800DEF58 4405A000 */ mfc1 $a1, $f20
/* 7840C 800DEF5C 4406D000 */ mfc1 $a2, $f26
/* 78410 800DEF60 4407E000 */ mfc1 $a3, $f28
/* 78414 800DEF64 8FA800BC */ lw $t0, 0xbc($sp)
/* 78418 800DEF68 34048000 */ ori $a0, $zero, 0x8000
/* 7841C 800DEF6C E7BE0010 */ swc1 $f30, 0x10($sp)
/* 78420 800DEF70 E7B60014 */ swc1 $f22, 0x14($sp)
/* 78424 800DEF74 E7B80018 */ swc1 $f24, 0x18($sp)
/* 78428 800DEF78 AFB5001C */ sw $s5, 0x1c($sp)
/* 7842C 800DEF7C AFB60020 */ sw $s6, 0x20($sp)
/* 78430 800DEF80 AFB70024 */ sw $s7, 0x24($sp)
/* 78434 800DEF84 AFBE0028 */ sw $fp, 0x28($sp)
/* 78438 800DEF88 AFB40030 */ sw $s4, 0x30($sp)
/* 7843C 800DEF8C AFB30034 */ sw $s3, 0x34($sp)
/* 78440 800DEF90 0C017334 */ jal test_ray_colliders
/* 78444 800DEF94 AFA8002C */ sw $t0, 0x2c($sp)
/* 78448 800DEF98 0040882D */ daddu $s1, $v0, $zero
.L800DEF9C:
/* 7844C 800DEF9C 24020001 */ addiu $v0, $zero, 1
.L800DEFA0:
/* 78450 800DEFA0 1242005B */ beq $s2, $v0, .L800DF110
/* 78454 800DEFA4 24020003 */ addiu $v0, $zero, 3
/* 78458 800DEFA8 12420059 */ beq $s2, $v0, .L800DF110
/* 7845C 800DEFAC 24020004 */ addiu $v0, $zero, 4
/* 78460 800DEFB0 16420002 */ bne $s2, $v0, .L800DEFBC
/* 78464 800DEFB4 3C040001 */ lui $a0, 1
/* 78468 800DEFB8 3C040008 */ lui $a0, 8
.L800DEFBC:
/* 7846C 800DEFBC 4405A000 */ mfc1 $a1, $f20
/* 78470 800DEFC0 4406D000 */ mfc1 $a2, $f26
/* 78474 800DEFC4 4407E000 */ mfc1 $a3, $f28
/* 78478 800DEFC8 8FA800BC */ lw $t0, 0xbc($sp)
/* 7847C 800DEFCC E7BE0010 */ swc1 $f30, 0x10($sp)
/* 78480 800DEFD0 E7B60014 */ swc1 $f22, 0x14($sp)
/* 78484 800DEFD4 E7B80018 */ swc1 $f24, 0x18($sp)
/* 78488 800DEFD8 AFB5001C */ sw $s5, 0x1c($sp)
/* 7848C 800DEFDC AFB60020 */ sw $s6, 0x20($sp)
/* 78490 800DEFE0 AFB70024 */ sw $s7, 0x24($sp)
/* 78494 800DEFE4 AFBE0028 */ sw $fp, 0x28($sp)
/* 78498 800DEFE8 AFB40030 */ sw $s4, 0x30($sp)
/* 7849C 800DEFEC AFB30034 */ sw $s3, 0x34($sp)
/* 784A0 800DEFF0 0C017334 */ jal test_ray_colliders
/* 784A4 800DEFF4 AFA8002C */ sw $t0, 0x2c($sp)
/* 784A8 800DEFF8 06210004 */ bgez $s1, .L800DF00C
/* 784AC 800DEFFC 00000000 */ nop
/* 784B0 800DF000 0040882D */ daddu $s1, $v0, $zero
/* 784B4 800DF004 06200043 */ bltz $s1, .L800DF114
/* 784B8 800DF008 0220102D */ daddu $v0, $s1, $zero
.L800DF00C:
/* 784BC 800DF00C C6620000 */ lwc1 $f2, ($s3)
/* 784C0 800DF010 3C014059 */ lui $at, 0x4059
/* 784C4 800DF014 4481A800 */ mtc1 $at, $f21
/* 784C8 800DF018 4480A000 */ mtc1 $zero, $f20
/* 784CC 800DF01C 460010A1 */ cvt.d.s $f2, $f2
/* 784D0 800DF020 46341082 */ mul.d $f2, $f2, $f20
/* 784D4 800DF024 00000000 */ nop
/* 784D8 800DF028 C6800000 */ lwc1 $f0, ($s4)
/* 784DC 800DF02C 46000021 */ cvt.d.s $f0, $f0
/* 784E0 800DF030 46340002 */ mul.d $f0, $f0, $f20
/* 784E4 800DF034 00000000 */ nop
/* 784E8 800DF038 4480B000 */ mtc1 $zero, $f22
/* 784EC 800DF03C 00000000 */ nop
/* 784F0 800DF040 4600B306 */ mov.s $f12, $f22
/* 784F4 800DF044 462010A0 */ cvt.s.d $f2, $f2
/* 784F8 800DF048 46200020 */ cvt.s.d $f0, $f0
/* 784FC 800DF04C 44061000 */ mfc1 $a2, $f2
/* 78500 800DF050 44070000 */ mfc1 $a3, $f0
/* 78504 800DF054 0C00A720 */ jal atan2
/* 78508 800DF058 4600B386 */ mov.s $f14, $f22
/* 7850C 800DF05C C6820000 */ lwc1 $f2, ($s4)
/* 78510 800DF060 460010A1 */ cvt.d.s $f2, $f2
/* 78514 800DF064 46341082 */ mul.d $f2, $f2, $f20
/* 78518 800DF068 00000000 */ nop
/* 7851C 800DF06C 8FA800BC */ lw $t0, 0xbc($sp)
/* 78520 800DF070 C5040000 */ lwc1 $f4, ($t0)
/* 78524 800DF074 46002121 */ cvt.d.s $f4, $f4
/* 78528 800DF078 46342102 */ mul.d $f4, $f4, $f20
/* 7852C 800DF07C 00000000 */ nop
/* 78530 800DF080 3C014334 */ lui $at, 0x4334
/* 78534 800DF084 4481A000 */ mtc1 $at, $f20
/* 78538 800DF088 4600B306 */ mov.s $f12, $f22
/* 7853C 800DF08C 4600A581 */ sub.s $f22, $f20, $f0
/* 78540 800DF090 462010A0 */ cvt.s.d $f2, $f2
/* 78544 800DF094 44071000 */ mfc1 $a3, $f2
/* 78548 800DF098 46202120 */ cvt.s.d $f4, $f4
/* 7854C 800DF09C 44062000 */ mfc1 $a2, $f4
/* 78550 800DF0A0 0C00A720 */ jal atan2
/* 78554 800DF0A4 46006386 */ mov.s $f14, $f12
/* 78558 800DF0A8 3C0142B4 */ lui $at, 0x42b4
/* 7855C 800DF0AC 44811000 */ mtc1 $at, $f2
/* 78560 800DF0B0 00000000 */ nop
/* 78564 800DF0B4 4602B032 */ c.eq.s $f22, $f2
/* 78568 800DF0B8 00000000 */ nop
/* 7856C 800DF0BC 45000005 */ bc1f .L800DF0D4
/* 78570 800DF0C0 4600A501 */ sub.s $f20, $f20, $f0
/* 78574 800DF0C4 4602A032 */ c.eq.s $f20, $f2
/* 78578 800DF0C8 00000000 */ nop
/* 7857C 800DF0CC 45010011 */ bc1t .L800DF114
/* 78580 800DF0D0 0220102D */ daddu $v0, $s1, $zero
.L800DF0D4:
/* 78584 800DF0D4 4600B021 */ cvt.d.s $f0, $f22
/* 78588 800DF0D8 3C01403E */ lui $at, 0x403e
/* 7858C 800DF0DC 44811800 */ mtc1 $at, $f3
/* 78590 800DF0E0 44801000 */ mtc1 $zero, $f2
/* 78594 800DF0E4 46200005 */ abs.d $f0, $f0
/* 78598 800DF0E8 4620103E */ c.le.d $f2, $f0
/* 7859C 800DF0EC 00000000 */ nop
/* 785A0 800DF0F0 45010008 */ bc1t .L800DF114
/* 785A4 800DF0F4 0220102D */ daddu $v0, $s1, $zero
/* 785A8 800DF0F8 4600A021 */ cvt.d.s $f0, $f20
/* 785AC 800DF0FC 46200005 */ abs.d $f0, $f0
/* 785B0 800DF100 4620103E */ c.le.d $f2, $f0
/* 785B4 800DF104 00000000 */ nop
/* 785B8 800DF108 45020001 */ bc1fl .L800DF110
/* 785BC 800DF10C 2411FFFF */ addiu $s1, $zero, -1
.L800DF110:
/* 785C0 800DF110 0220102D */ daddu $v0, $s1, $zero
.L800DF114:
/* 785C4 800DF114 8FBF005C */ lw $ra, 0x5c($sp)
/* 785C8 800DF118 8FBE0058 */ lw $fp, 0x58($sp)
/* 785CC 800DF11C 8FB70054 */ lw $s7, 0x54($sp)
/* 785D0 800DF120 8FB60050 */ lw $s6, 0x50($sp)
/* 785D4 800DF124 8FB5004C */ lw $s5, 0x4c($sp)
/* 785D8 800DF128 8FB40048 */ lw $s4, 0x48($sp)
/* 785DC 800DF12C 8FB30044 */ lw $s3, 0x44($sp)
/* 785E0 800DF130 8FB20040 */ lw $s2, 0x40($sp)
/* 785E4 800DF134 8FB1003C */ lw $s1, 0x3c($sp)
/* 785E8 800DF138 8FB00038 */ lw $s0, 0x38($sp)
/* 785EC 800DF13C D7BE0088 */ ldc1 $f30, 0x88($sp)
/* 785F0 800DF140 D7BC0080 */ ldc1 $f28, 0x80($sp)
/* 785F4 800DF144 D7BA0078 */ ldc1 $f26, 0x78($sp)
/* 785F8 800DF148 D7B80070 */ ldc1 $f24, 0x70($sp)
/* 785FC 800DF14C D7B60068 */ ldc1 $f22, 0x68($sp)
/* 78600 800DF150 D7B40060 */ ldc1 $f20, 0x60($sp)
/* 78604 800DF154 03E00008 */ jr $ra
/* 78608 800DF158 27BD0090 */ addiu $sp, $sp, 0x90

View File

@ -1,134 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel player_raycast_up_corner
/* 77EB8 800DEA08 27BDFF58 */ addiu $sp, $sp, -0xa8
/* 77EBC 800DEA0C AFB30064 */ sw $s3, 0x64($sp)
/* 77EC0 800DEA10 0080982D */ daddu $s3, $a0, $zero
/* 77EC4 800DEA14 AFB40068 */ sw $s4, 0x68($sp)
/* 77EC8 800DEA18 00A0A02D */ daddu $s4, $a1, $zero
/* 77ECC 800DEA1C AFB5006C */ sw $s5, 0x6c($sp)
/* 77ED0 800DEA20 00C0A82D */ daddu $s5, $a2, $zero
/* 77ED4 800DEA24 AFB20060 */ sw $s2, 0x60($sp)
/* 77ED8 800DEA28 00E0902D */ daddu $s2, $a3, $zero
/* 77EDC 800DEA2C AFB1005C */ sw $s1, 0x5c($sp)
/* 77EE0 800DEA30 2411FFFF */ addiu $s1, $zero, -1
/* 77EE4 800DEA34 3C040001 */ lui $a0, 1
/* 77EE8 800DEA38 AFBF0070 */ sw $ra, 0x70($sp)
/* 77EEC 800DEA3C AFB00058 */ sw $s0, 0x58($sp)
/* 77EF0 800DEA40 F7BE00A0 */ sdc1 $f30, 0xa0($sp)
/* 77EF4 800DEA44 F7BC0098 */ sdc1 $f28, 0x98($sp)
/* 77EF8 800DEA48 F7BA0090 */ sdc1 $f26, 0x90($sp)
/* 77EFC 800DEA4C F7B80088 */ sdc1 $f24, 0x88($sp)
/* 77F00 800DEA50 F7B60080 */ sdc1 $f22, 0x80($sp)
/* 77F04 800DEA54 F7B40078 */ sdc1 $f20, 0x78($sp)
/* 77F08 800DEA58 C6780000 */ lwc1 $f24, ($s3)
/* 77F0C 800DEA5C C6960000 */ lwc1 $f22, ($s4)
/* 77F10 800DEA60 C6B40000 */ lwc1 $f20, ($s5)
/* 77F14 800DEA64 C6400000 */ lwc1 $f0, ($s2)
/* 77F18 800DEA68 3C013F80 */ lui $at, 0x3f80
/* 77F1C 800DEA6C 44811000 */ mtc1 $at, $f2
/* 77F20 800DEA70 4406B000 */ mfc1 $a2, $f22
/* 77F24 800DEA74 4407A000 */ mfc1 $a3, $f20
/* 77F28 800DEA78 4405C000 */ mfc1 $a1, $f24
/* 77F2C 800DEA7C 27A20038 */ addiu $v0, $sp, 0x38
/* 77F30 800DEA80 E7A00044 */ swc1 $f0, 0x44($sp)
/* 77F34 800DEA84 AFA2001C */ sw $v0, 0x1c($sp)
/* 77F38 800DEA88 27A2003C */ addiu $v0, $sp, 0x3c
/* 77F3C 800DEA8C AFA20020 */ sw $v0, 0x20($sp)
/* 77F40 800DEA90 27A20040 */ addiu $v0, $sp, 0x40
/* 77F44 800DEA94 AFA20024 */ sw $v0, 0x24($sp)
/* 77F48 800DEA98 27A20044 */ addiu $v0, $sp, 0x44
/* 77F4C 800DEA9C AFA20028 */ sw $v0, 0x28($sp)
/* 77F50 800DEAA0 27A20048 */ addiu $v0, $sp, 0x48
/* 77F54 800DEAA4 AFA2002C */ sw $v0, 0x2c($sp)
/* 77F58 800DEAA8 27A2004C */ addiu $v0, $sp, 0x4c
/* 77F5C 800DEAAC AFA20030 */ sw $v0, 0x30($sp)
/* 77F60 800DEAB0 27A20050 */ addiu $v0, $sp, 0x50
/* 77F64 800DEAB4 AFA00010 */ sw $zero, 0x10($sp)
/* 77F68 800DEAB8 E7A20014 */ swc1 $f2, 0x14($sp)
/* 77F6C 800DEABC AFA00018 */ sw $zero, 0x18($sp)
/* 77F70 800DEAC0 0C017334 */ jal test_ray_colliders
/* 77F74 800DEAC4 AFA20034 */ sw $v0, 0x34($sp)
/* 77F78 800DEAC8 0040802D */ daddu $s0, $v0, $zero
/* 77F7C 800DEACC 4600C686 */ mov.s $f26, $f24
/* 77F80 800DEAD0 4600B706 */ mov.s $f28, $f22
/* 77F84 800DEAD4 0600000C */ bltz $s0, .L800DEB08
/* 77F88 800DEAD8 4600A786 */ mov.s $f30, $f20
/* 77F8C 800DEADC C6400000 */ lwc1 $f0, ($s2)
/* 77F90 800DEAE0 C7A20044 */ lwc1 $f2, 0x44($sp)
/* 77F94 800DEAE4 4600103C */ c.lt.s $f2, $f0
/* 77F98 800DEAE8 00000000 */ nop
/* 77F9C 800DEAEC 45020007 */ bc1fl .L800DEB0C
/* 77FA0 800DEAF0 4600D606 */ mov.s $f24, $f26
/* 77FA4 800DEAF4 0200882D */ daddu $s1, $s0, $zero
/* 77FA8 800DEAF8 E6420000 */ swc1 $f2, ($s2)
/* 77FAC 800DEAFC E6780000 */ swc1 $f24, ($s3)
/* 77FB0 800DEB00 E6960000 */ swc1 $f22, ($s4)
/* 77FB4 800DEB04 E6B40000 */ swc1 $f20, ($s5)
.L800DEB08:
/* 77FB8 800DEB08 4600D606 */ mov.s $f24, $f26
.L800DEB0C:
/* 77FBC 800DEB0C 4600E586 */ mov.s $f22, $f28
/* 77FC0 800DEB10 3C014120 */ lui $at, 0x4120
/* 77FC4 800DEB14 44811000 */ mtc1 $at, $f2
/* 77FC8 800DEB18 44802000 */ mtc1 $zero, $f4
/* 77FCC 800DEB1C 3C013F80 */ lui $at, 0x3f80
/* 77FD0 800DEB20 44810000 */ mtc1 $at, $f0
/* 77FD4 800DEB24 27A20038 */ addiu $v0, $sp, 0x38
/* 77FD8 800DEB28 E7A20044 */ swc1 $f2, 0x44($sp)
/* 77FDC 800DEB2C AFA20018 */ sw $v0, 0x18($sp)
/* 77FE0 800DEB30 27A2003C */ addiu $v0, $sp, 0x3c
/* 77FE4 800DEB34 AFA2001C */ sw $v0, 0x1c($sp)
/* 77FE8 800DEB38 27A20040 */ addiu $v0, $sp, 0x40
/* 77FEC 800DEB3C AFA20020 */ sw $v0, 0x20($sp)
/* 77FF0 800DEB40 27A20044 */ addiu $v0, $sp, 0x44
/* 77FF4 800DEB44 AFA20024 */ sw $v0, 0x24($sp)
/* 77FF8 800DEB48 27A20048 */ addiu $v0, $sp, 0x48
/* 77FFC 800DEB4C AFA20028 */ sw $v0, 0x28($sp)
/* 78000 800DEB50 27A2004C */ addiu $v0, $sp, 0x4c
/* 78004 800DEB54 AFA2002C */ sw $v0, 0x2c($sp)
/* 78008 800DEB58 27A20050 */ addiu $v0, $sp, 0x50
/* 7800C 800DEB5C E7A00010 */ swc1 $f0, 0x10($sp)
/* 78010 800DEB60 E7A40014 */ swc1 $f4, 0x14($sp)
/* 78014 800DEB64 AFA20030 */ sw $v0, 0x30($sp)
/* 78018 800DEB68 8EA60000 */ lw $a2, ($s5)
/* 7801C 800DEB6C 44072000 */ mfc1 $a3, $f4
/* 78020 800DEB70 C66C0000 */ lwc1 $f12, ($s3)
/* 78024 800DEB74 C68E0000 */ lwc1 $f14, ($s4)
/* 78028 800DEB78 0C017512 */ jal test_ray_entities
/* 7802C 800DEB7C 4600F506 */ mov.s $f20, $f30
/* 78030 800DEB80 0040802D */ daddu $s0, $v0, $zero
/* 78034 800DEB84 06000010 */ bltz $s0, .L800DEBC8
/* 78038 800DEB88 0220102D */ daddu $v0, $s1, $zero
/* 7803C 800DEB8C C6420000 */ lwc1 $f2, ($s2)
/* 78040 800DEB90 C7A00044 */ lwc1 $f0, 0x44($sp)
/* 78044 800DEB94 4602003C */ c.lt.s $f0, $f2
/* 78048 800DEB98 00000000 */ nop
/* 7804C 800DEB9C 4500000A */ bc1f .L800DEBC8
/* 78050 800DEBA0 00000000 */ nop
/* 78054 800DEBA4 0C04417A */ jal get_entity_by_index
/* 78058 800DEBA8 0200202D */ daddu $a0, $s0, $zero
/* 7805C 800DEBAC C7A00044 */ lwc1 $f0, 0x44($sp)
/* 78060 800DEBB0 36114000 */ ori $s1, $s0, 0x4000
/* 78064 800DEBB4 E6400000 */ swc1 $f0, ($s2)
/* 78068 800DEBB8 E6780000 */ swc1 $f24, ($s3)
/* 7806C 800DEBBC E6960000 */ swc1 $f22, ($s4)
/* 78070 800DEBC0 E6B40000 */ swc1 $f20, ($s5)
/* 78074 800DEBC4 0220102D */ daddu $v0, $s1, $zero
.L800DEBC8:
/* 78078 800DEBC8 8FBF0070 */ lw $ra, 0x70($sp)
/* 7807C 800DEBCC 8FB5006C */ lw $s5, 0x6c($sp)
/* 78080 800DEBD0 8FB40068 */ lw $s4, 0x68($sp)
/* 78084 800DEBD4 8FB30064 */ lw $s3, 0x64($sp)
/* 78088 800DEBD8 8FB20060 */ lw $s2, 0x60($sp)
/* 7808C 800DEBDC 8FB1005C */ lw $s1, 0x5c($sp)
/* 78090 800DEBE0 8FB00058 */ lw $s0, 0x58($sp)
/* 78094 800DEBE4 D7BE00A0 */ ldc1 $f30, 0xa0($sp)
/* 78098 800DEBE8 D7BC0098 */ ldc1 $f28, 0x98($sp)
/* 7809C 800DEBEC D7BA0090 */ ldc1 $f26, 0x90($sp)
/* 780A0 800DEBF0 D7B80088 */ ldc1 $f24, 0x88($sp)
/* 780A4 800DEBF4 D7B60080 */ ldc1 $f22, 0x80($sp)
/* 780A8 800DEBF8 D7B40078 */ ldc1 $f20, 0x78($sp)
/* 780AC 800DEBFC 03E00008 */ jr $ra
/* 780B0 800DEC00 27BD00A8 */ addiu $sp, $sp, 0xa8

View File

@ -1,144 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel player_raycast_up_corners
/* 77C94 800DE7E4 27BDFF90 */ addiu $sp, $sp, -0x70
/* 77C98 800DE7E8 F7B40048 */ sdc1 $f20, 0x48($sp)
/* 77C9C 800DE7EC C7B40084 */ lwc1 $f20, 0x84($sp)
/* 77CA0 800DE7F0 3C0140C9 */ lui $at, 0x40c9
/* 77CA4 800DE7F4 34210FD0 */ ori $at, $at, 0xfd0
/* 77CA8 800DE7F8 44810000 */ mtc1 $at, $f0
/* 77CAC 800DE7FC AFB60038 */ sw $s6, 0x38($sp)
/* 77CB0 800DE800 00A0B02D */ daddu $s6, $a1, $zero
/* 77CB4 800DE804 AFB7003C */ sw $s7, 0x3c($sp)
/* 77CB8 800DE808 00C0B82D */ daddu $s7, $a2, $zero
/* 77CBC 800DE80C AFBE0040 */ sw $fp, 0x40($sp)
/* 77CC0 800DE810 00E0F02D */ daddu $fp, $a3, $zero
/* 77CC4 800DE814 AFB40030 */ sw $s4, 0x30($sp)
/* 77CC8 800DE818 2414FFFF */ addiu $s4, $zero, -1
/* 77CCC 800DE81C AFBF0044 */ sw $ra, 0x44($sp)
/* 77CD0 800DE820 AFB50034 */ sw $s5, 0x34($sp)
/* 77CD4 800DE824 AFB3002C */ sw $s3, 0x2c($sp)
/* 77CD8 800DE828 AFB20028 */ sw $s2, 0x28($sp)
/* 77CDC 800DE82C AFB10024 */ sw $s1, 0x24($sp)
/* 77CE0 800DE830 AFB00020 */ sw $s0, 0x20($sp)
/* 77CE4 800DE834 F7BC0068 */ sdc1 $f28, 0x68($sp)
/* 77CE8 800DE838 F7BA0060 */ sdc1 $f26, 0x60($sp)
/* 77CEC 800DE83C F7B80058 */ sdc1 $f24, 0x58($sp)
/* 77CF0 800DE840 F7B60050 */ sdc1 $f22, 0x50($sp)
/* 77CF4 800DE844 848200B2 */ lh $v0, 0xb2($a0)
/* 77CF8 800DE848 4600A502 */ mul.s $f20, $f20, $f0
/* 77CFC 800DE84C 00000000 */ nop
/* 77D00 800DE850 3C013E99 */ lui $at, 0x3e99
/* 77D04 800DE854 3421999A */ ori $at, $at, 0x999a
/* 77D08 800DE858 44811000 */ mtc1 $at, $f2
/* 77D0C 800DE85C 8FB50080 */ lw $s5, 0x80($sp)
/* 77D10 800DE860 4482B000 */ mtc1 $v0, $f22
/* 77D14 800DE864 00000000 */ nop
/* 77D18 800DE868 4680B5A0 */ cvt.s.w $f22, $f22
/* 77D1C 800DE86C 3C0143B4 */ lui $at, 0x43b4
/* 77D20 800DE870 44810000 */ mtc1 $at, $f0
/* 77D24 800DE874 4602B582 */ mul.s $f22, $f22, $f2
/* 77D28 800DE878 00000000 */ nop
/* 77D2C 800DE87C 4600A503 */ div.s $f20, $f20, $f0
/* 77D30 800DE880 0C00A85B */ jal sin_rad
/* 77D34 800DE884 4600A306 */ mov.s $f12, $f20
/* 77D38 800DE888 4600B702 */ mul.s $f28, $f22, $f0
/* 77D3C 800DE88C 00000000 */ nop
/* 77D40 800DE890 0C00A874 */ jal cos_rad
/* 77D44 800DE894 4600A306 */ mov.s $f12, $f20
/* 77D48 800DE898 27B30010 */ addiu $s3, $sp, 0x10
/* 77D4C 800DE89C 0260202D */ daddu $a0, $s3, $zero
/* 77D50 800DE8A0 27B20014 */ addiu $s2, $sp, 0x14
/* 77D54 800DE8A4 0240282D */ daddu $a1, $s2, $zero
/* 77D58 800DE8A8 27B10018 */ addiu $s1, $sp, 0x18
/* 77D5C 800DE8AC 0220302D */ daddu $a2, $s1, $zero
/* 77D60 800DE8B0 27B0001C */ addiu $s0, $sp, 0x1c
/* 77D64 800DE8B4 4600B587 */ neg.s $f22, $f22
/* 77D68 800DE8B8 4600B682 */ mul.s $f26, $f22, $f0
/* 77D6C 800DE8BC 00000000 */ nop
/* 77D70 800DE8C0 C6D60000 */ lwc1 $f22, ($s6)
/* 77D74 800DE8C4 C6F80000 */ lwc1 $f24, ($s7)
/* 77D78 800DE8C8 C7D40000 */ lwc1 $f20, ($fp)
/* 77D7C 800DE8CC C6A00000 */ lwc1 $f0, ($s5)
/* 77D80 800DE8D0 461CB080 */ add.s $f2, $f22, $f28
/* 77D84 800DE8D4 0200382D */ daddu $a3, $s0, $zero
/* 77D88 800DE8D8 E7A0001C */ swc1 $f0, 0x1c($sp)
/* 77D8C 800DE8DC 461AA000 */ add.s $f0, $f20, $f26
/* 77D90 800DE8E0 E7B80014 */ swc1 $f24, 0x14($sp)
/* 77D94 800DE8E4 E7A20010 */ swc1 $f2, 0x10($sp)
/* 77D98 800DE8E8 0C037A82 */ jal player_raycast_up_corner
/* 77D9C 800DE8EC E7A00018 */ swc1 $f0, 0x18($sp)
/* 77DA0 800DE8F0 04410022 */ bgez $v0, .L800DE97C
/* 77DA4 800DE8F4 0260202D */ daddu $a0, $s3, $zero
/* 77DA8 800DE8F8 0240282D */ daddu $a1, $s2, $zero
/* 77DAC 800DE8FC 461CB081 */ sub.s $f2, $f22, $f28
/* 77DB0 800DE900 0220302D */ daddu $a2, $s1, $zero
/* 77DB4 800DE904 0200382D */ daddu $a3, $s0, $zero
/* 77DB8 800DE908 461AA001 */ sub.s $f0, $f20, $f26
/* 77DBC 800DE90C E7B80014 */ swc1 $f24, 0x14($sp)
/* 77DC0 800DE910 E7A20010 */ swc1 $f2, 0x10($sp)
/* 77DC4 800DE914 0C037A82 */ jal player_raycast_up_corner
/* 77DC8 800DE918 E7A00018 */ swc1 $f0, 0x18($sp)
/* 77DCC 800DE91C 04410017 */ bgez $v0, .L800DE97C
/* 77DD0 800DE920 0260202D */ daddu $a0, $s3, $zero
/* 77DD4 800DE924 0240282D */ daddu $a1, $s2, $zero
/* 77DD8 800DE928 461AB080 */ add.s $f2, $f22, $f26
/* 77DDC 800DE92C 0220302D */ daddu $a2, $s1, $zero
/* 77DE0 800DE930 0200382D */ daddu $a3, $s0, $zero
/* 77DE4 800DE934 461CA000 */ add.s $f0, $f20, $f28
/* 77DE8 800DE938 E7B80014 */ swc1 $f24, 0x14($sp)
/* 77DEC 800DE93C E7A20010 */ swc1 $f2, 0x10($sp)
/* 77DF0 800DE940 0C037A82 */ jal player_raycast_up_corner
/* 77DF4 800DE944 E7A00018 */ swc1 $f0, 0x18($sp)
/* 77DF8 800DE948 0441000C */ bgez $v0, .L800DE97C
/* 77DFC 800DE94C 0260202D */ daddu $a0, $s3, $zero
/* 77E00 800DE950 0240282D */ daddu $a1, $s2, $zero
/* 77E04 800DE954 461AB081 */ sub.s $f2, $f22, $f26
/* 77E08 800DE958 0220302D */ daddu $a2, $s1, $zero
/* 77E0C 800DE95C 0200382D */ daddu $a3, $s0, $zero
/* 77E10 800DE960 461CA001 */ sub.s $f0, $f20, $f28
/* 77E14 800DE964 E7B80014 */ swc1 $f24, 0x14($sp)
/* 77E18 800DE968 E7A20010 */ swc1 $f2, 0x10($sp)
/* 77E1C 800DE96C 0C037A82 */ jal player_raycast_up_corner
/* 77E20 800DE970 E7A00018 */ swc1 $f0, 0x18($sp)
/* 77E24 800DE974 0440000A */ bltz $v0, .L800DE9A0
/* 77E28 800DE978 00000000 */ nop
.L800DE97C:
/* 77E2C 800DE97C C7A00010 */ lwc1 $f0, 0x10($sp)
/* 77E30 800DE980 E6C00000 */ swc1 $f0, ($s6)
/* 77E34 800DE984 C7A00014 */ lwc1 $f0, 0x14($sp)
/* 77E38 800DE988 E6E00000 */ swc1 $f0, ($s7)
/* 77E3C 800DE98C C7A00018 */ lwc1 $f0, 0x18($sp)
/* 77E40 800DE990 E7C00000 */ swc1 $f0, ($fp)
/* 77E44 800DE994 C7A0001C */ lwc1 $f0, 0x1c($sp)
/* 77E48 800DE998 0040A02D */ daddu $s4, $v0, $zero
/* 77E4C 800DE99C E6A00000 */ swc1 $f0, ($s5)
.L800DE9A0:
/* 77E50 800DE9A0 06810008 */ bgez $s4, .L800DE9C4
/* 77E54 800DE9A4 0280102D */ daddu $v0, $s4, $zero
/* 77E58 800DE9A8 C7A00010 */ lwc1 $f0, 0x10($sp)
/* 77E5C 800DE9AC E6C00000 */ swc1 $f0, ($s6)
/* 77E60 800DE9B0 C7A00014 */ lwc1 $f0, 0x14($sp)
/* 77E64 800DE9B4 E6E00000 */ swc1 $f0, ($s7)
/* 77E68 800DE9B8 C7A00018 */ lwc1 $f0, 0x18($sp)
/* 77E6C 800DE9BC E7C00000 */ swc1 $f0, ($fp)
/* 77E70 800DE9C0 AEA00000 */ sw $zero, ($s5)
.L800DE9C4:
/* 77E74 800DE9C4 8FBF0044 */ lw $ra, 0x44($sp)
/* 77E78 800DE9C8 8FBE0040 */ lw $fp, 0x40($sp)
/* 77E7C 800DE9CC 8FB7003C */ lw $s7, 0x3c($sp)
/* 77E80 800DE9D0 8FB60038 */ lw $s6, 0x38($sp)
/* 77E84 800DE9D4 8FB50034 */ lw $s5, 0x34($sp)
/* 77E88 800DE9D8 8FB40030 */ lw $s4, 0x30($sp)
/* 77E8C 800DE9DC 8FB3002C */ lw $s3, 0x2c($sp)
/* 77E90 800DE9E0 8FB20028 */ lw $s2, 0x28($sp)
/* 77E94 800DE9E4 8FB10024 */ lw $s1, 0x24($sp)
/* 77E98 800DE9E8 8FB00020 */ lw $s0, 0x20($sp)
/* 77E9C 800DE9EC D7BC0068 */ ldc1 $f28, 0x68($sp)
/* 77EA0 800DE9F0 D7BA0060 */ ldc1 $f26, 0x60($sp)
/* 77EA4 800DE9F4 D7B80058 */ ldc1 $f24, 0x58($sp)
/* 77EA8 800DE9F8 D7B60050 */ ldc1 $f22, 0x50($sp)
/* 77EAC 800DE9FC D7B40048 */ ldc1 $f20, 0x48($sp)
/* 77EB0 800DEA00 03E00008 */ jr $ra
/* 77EB4 800DEA04 27BD0070 */ addiu $sp, $sp, 0x70

View File

@ -1,159 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel player_test_lateral_overlap
/* 780B4 800DEC04 27BDFF58 */ addiu $sp, $sp, -0xa8
/* 780B8 800DEC08 AFB40078 */ sw $s4, 0x78($sp)
/* 780BC 800DEC0C 0080A02D */ daddu $s4, $a0, $zero
/* 780C0 800DEC10 AFB20070 */ sw $s2, 0x70($sp)
/* 780C4 800DEC14 00C0902D */ daddu $s2, $a2, $zero
/* 780C8 800DEC18 AFB00068 */ sw $s0, 0x68($sp)
/* 780CC 800DEC1C 00E0802D */ daddu $s0, $a3, $zero
/* 780D0 800DEC20 AFB30074 */ sw $s3, 0x74($sp)
/* 780D4 800DEC24 AFBF007C */ sw $ra, 0x7c($sp)
/* 780D8 800DEC28 AFB1006C */ sw $s1, 0x6c($sp)
/* 780DC 800DEC2C F7BC00A0 */ sdc1 $f28, 0xa0($sp)
/* 780E0 800DEC30 F7BA0098 */ sdc1 $f26, 0x98($sp)
/* 780E4 800DEC34 F7B80090 */ sdc1 $f24, 0x90($sp)
/* 780E8 800DEC38 F7B60088 */ sdc1 $f22, 0x88($sp)
/* 780EC 800DEC3C F7B40080 */ sdc1 $f20, 0x80($sp)
/* 780F0 800DEC40 84A200B2 */ lh $v0, 0xb2($a1)
/* 780F4 800DEC44 3C013F00 */ lui $at, 0x3f00
/* 780F8 800DEC48 44810000 */ mtc1 $at, $f0
/* 780FC 800DEC4C 8FB100B8 */ lw $s1, 0xb8($sp)
/* 78100 800DEC50 C7B400BC */ lwc1 $f20, 0xbc($sp)
/* 78104 800DEC54 44821000 */ mtc1 $v0, $f2
/* 78108 800DEC58 00000000 */ nop
/* 7810C 800DEC5C 468010A0 */ cvt.s.w $f2, $f2
/* 78110 800DEC60 8CA20000 */ lw $v0, ($a1)
/* 78114 800DEC64 46001702 */ mul.s $f28, $f2, $f0
/* 78118 800DEC68 00000000 */ nop
/* 7811C 800DEC6C 30420006 */ andi $v0, $v0, 6
/* 78120 800DEC70 1440000B */ bnez $v0, .L800DECA0
/* 78124 800DEC74 2413FFFF */ addiu $s3, $zero, -1
/* 78128 800DEC78 84A200B0 */ lh $v0, 0xb0($a1)
/* 7812C 800DEC7C 3C013E92 */ lui $at, 0x3e92
/* 78130 800DEC80 34216E98 */ ori $at, $at, 0x6e98
/* 78134 800DEC84 44811000 */ mtc1 $at, $f2
/* 78138 800DEC88 44820000 */ mtc1 $v0, $f0
/* 7813C 800DEC8C 00000000 */ nop
/* 78140 800DEC90 46800020 */ cvt.s.w $f0, $f0
/* 78144 800DEC94 46020582 */ mul.s $f22, $f0, $f2
/* 78148 800DEC98 08037B2A */ j .L800DECA8
/* 7814C 800DEC9C 00000000 */ nop
.L800DECA0:
/* 78150 800DECA0 3C013F80 */ lui $at, 0x3f80
/* 78154 800DECA4 4481B000 */ mtc1 $at, $f22
.L800DECA8:
/* 78158 800DECA8 3C0140C9 */ lui $at, 0x40c9
/* 7815C 800DECAC 34210FD0 */ ori $at, $at, 0xfd0
/* 78160 800DECB0 44810000 */ mtc1 $at, $f0
/* 78164 800DECB4 C7AC00C0 */ lwc1 $f12, 0xc0($sp)
/* 78168 800DECB8 46006302 */ mul.s $f12, $f12, $f0
/* 7816C 800DECBC 00000000 */ nop
/* 78170 800DECC0 27A50038 */ addiu $a1, $sp, 0x38
/* 78174 800DECC4 3C0143B4 */ lui $at, 0x43b4
/* 78178 800DECC8 44810000 */ mtc1 $at, $f0
/* 7817C 800DECCC 27A6003C */ addiu $a2, $sp, 0x3c
/* 78180 800DECD0 0C00A82D */ jal sin_cos_rad
/* 78184 800DECD4 46006303 */ div.s $f12, $f12, $f0
/* 78188 800DECD8 461CA080 */ add.s $f2, $f20, $f28
/* 7818C 800DECDC C7A0003C */ lwc1 $f0, 0x3c($sp)
/* 78190 800DECE0 46000007 */ neg.s $f0, $f0
/* 78194 800DECE4 E7A0003C */ swc1 $f0, 0x3c($sp)
/* 78198 800DECE8 E7A2004C */ swc1 $f2, 0x4c($sp)
/* 7819C 800DECEC C7A20038 */ lwc1 $f2, 0x38($sp)
/* 781A0 800DECF0 C6040000 */ lwc1 $f4, ($s0)
/* 781A4 800DECF4 27A20040 */ addiu $v0, $sp, 0x40
/* 781A8 800DECF8 AFA2001C */ sw $v0, 0x1c($sp)
/* 781AC 800DECFC 27A20044 */ addiu $v0, $sp, 0x44
/* 781B0 800DED00 AFA20020 */ sw $v0, 0x20($sp)
/* 781B4 800DED04 27A20048 */ addiu $v0, $sp, 0x48
/* 781B8 800DED08 AFA20024 */ sw $v0, 0x24($sp)
/* 781BC 800DED0C 27A2004C */ addiu $v0, $sp, 0x4c
/* 781C0 800DED10 AFA20028 */ sw $v0, 0x28($sp)
/* 781C4 800DED14 27A20050 */ addiu $v0, $sp, 0x50
/* 781C8 800DED18 AFA2002C */ sw $v0, 0x2c($sp)
/* 781CC 800DED1C 27A20054 */ addiu $v0, $sp, 0x54
/* 781D0 800DED20 AFA20030 */ sw $v0, 0x30($sp)
/* 781D4 800DED24 27A20058 */ addiu $v0, $sp, 0x58
/* 781D8 800DED28 AFA00014 */ sw $zero, 0x14($sp)
/* 781DC 800DED2C E7A00018 */ swc1 $f0, 0x18($sp)
/* 781E0 800DED30 AFA20034 */ sw $v0, 0x34($sp)
/* 781E4 800DED34 46162100 */ add.s $f4, $f4, $f22
/* 781E8 800DED38 E7A20010 */ swc1 $f2, 0x10($sp)
/* 781EC 800DED3C 8E450000 */ lw $a1, ($s2)
/* 781F0 800DED40 8E270000 */ lw $a3, ($s1)
/* 781F4 800DED44 44062000 */ mfc1 $a2, $f4
/* 781F8 800DED48 0C037B97 */ jal player_raycast_general
/* 781FC 800DED4C 0280202D */ daddu $a0, $s4, $zero
/* 78200 800DED50 0040802D */ daddu $s0, $v0, $zero
/* 78204 800DED54 24020003 */ addiu $v0, $zero, 3
/* 78208 800DED58 16820004 */ bne $s4, $v0, .L800DED6C
/* 7820C 800DED5C 00000000 */ nop
/* 78210 800DED60 4480C000 */ mtc1 $zero, $f24
/* 78214 800DED64 08037B61 */ j .L800DED84
/* 78218 800DED68 4600C686 */ mov.s $f26, $f24
.L800DED6C:
/* 7821C 800DED6C C7A00038 */ lwc1 $f0, 0x38($sp)
/* 78220 800DED70 4600A682 */ mul.s $f26, $f20, $f0
/* 78224 800DED74 00000000 */ nop
/* 78228 800DED78 C7A0003C */ lwc1 $f0, 0x3c($sp)
/* 7822C 800DED7C 4600A602 */ mul.s $f24, $f20, $f0
/* 78230 800DED80 00000000 */ nop
.L800DED84:
/* 78234 800DED84 06000021 */ bltz $s0, .L800DEE0C
/* 78238 800DED88 00000000 */ nop
/* 7823C 800DED8C 461CA080 */ add.s $f2, $f20, $f28
/* 78240 800DED90 C7B6004C */ lwc1 $f22, 0x4c($sp)
/* 78244 800DED94 4602B03E */ c.le.s $f22, $f2
/* 78248 800DED98 00000000 */ nop
/* 7824C 800DED9C 4500001B */ bc1f .L800DEE0C
/* 78250 800DEDA0 27A4005C */ addiu $a0, $sp, 0x5c
/* 78254 800DEDA4 4602B581 */ sub.s $f22, $f22, $f2
/* 78258 800DEDA8 4406D000 */ mfc1 $a2, $f26
/* 7825C 800DEDAC C7B40038 */ lwc1 $f20, 0x38($sp)
/* 78260 800DEDB0 4407C000 */ mfc1 $a3, $f24
/* 78264 800DEDB4 C7A2003C */ lwc1 $f2, 0x3c($sp)
/* 78268 800DEDB8 4614B502 */ mul.s $f20, $f22, $f20
/* 7826C 800DEDBC 00000000 */ nop
/* 78270 800DEDC0 C7A00050 */ lwc1 $f0, 0x50($sp)
/* 78274 800DEDC4 27A50060 */ addiu $a1, $sp, 0x60
/* 78278 800DEDC8 E7A00010 */ swc1 $f0, 0x10($sp)
/* 7827C 800DEDCC C7A00058 */ lwc1 $f0, 0x58($sp)
/* 78280 800DEDD0 4602B582 */ mul.s $f22, $f22, $f2
/* 78284 800DEDD4 00000000 */ nop
/* 78288 800DEDD8 0C037CFF */ jal player_get_slip_vector
/* 7828C 800DEDDC E7A00014 */ swc1 $f0, 0x14($sp)
/* 78290 800DEDE0 C7A0005C */ lwc1 $f0, 0x5c($sp)
/* 78294 800DEDE4 4600A500 */ add.s $f20, $f20, $f0
/* 78298 800DEDE8 C6400000 */ lwc1 $f0, ($s2)
/* 7829C 800DEDEC 46140000 */ add.s $f0, $f0, $f20
/* 782A0 800DEDF0 E6400000 */ swc1 $f0, ($s2)
/* 782A4 800DEDF4 C7A00060 */ lwc1 $f0, 0x60($sp)
/* 782A8 800DEDF8 4600B580 */ add.s $f22, $f22, $f0
/* 782AC 800DEDFC C6200000 */ lwc1 $f0, ($s1)
/* 782B0 800DEE00 46160000 */ add.s $f0, $f0, $f22
/* 782B4 800DEE04 0200982D */ daddu $s3, $s0, $zero
/* 782B8 800DEE08 E6200000 */ swc1 $f0, ($s1)
.L800DEE0C:
/* 782BC 800DEE0C C6400000 */ lwc1 $f0, ($s2)
/* 782C0 800DEE10 461A0000 */ add.s $f0, $f0, $f26
/* 782C4 800DEE14 E6400000 */ swc1 $f0, ($s2)
/* 782C8 800DEE18 C6200000 */ lwc1 $f0, ($s1)
/* 782CC 800DEE1C 46180000 */ add.s $f0, $f0, $f24
/* 782D0 800DEE20 0260102D */ daddu $v0, $s3, $zero
/* 782D4 800DEE24 E6200000 */ swc1 $f0, ($s1)
/* 782D8 800DEE28 8FBF007C */ lw $ra, 0x7c($sp)
/* 782DC 800DEE2C 8FB40078 */ lw $s4, 0x78($sp)
/* 782E0 800DEE30 8FB30074 */ lw $s3, 0x74($sp)
/* 782E4 800DEE34 8FB20070 */ lw $s2, 0x70($sp)
/* 782E8 800DEE38 8FB1006C */ lw $s1, 0x6c($sp)
/* 782EC 800DEE3C 8FB00068 */ lw $s0, 0x68($sp)
/* 782F0 800DEE40 D7BC00A0 */ ldc1 $f28, 0xa0($sp)
/* 782F4 800DEE44 D7BA0098 */ ldc1 $f26, 0x98($sp)
/* 782F8 800DEE48 D7B80090 */ ldc1 $f24, 0x90($sp)
/* 782FC 800DEE4C D7B60088 */ ldc1 $f22, 0x88($sp)
/* 78300 800DEE50 D7B40080 */ ldc1 $f20, 0x80($sp)
/* 78304 800DEE54 03E00008 */ jr $ra
/* 78308 800DEE58 27BD00A8 */ addiu $sp, $sp, 0xa8

View File

@ -1,192 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel player_test_move_with_slipping
/* 78910 800DF460 27BDFF48 */ addiu $sp, $sp, -0xb8
/* 78914 800DF464 AFB40078 */ sw $s4, 0x78($sp)
/* 78918 800DF468 0080A02D */ daddu $s4, $a0, $zero
/* 7891C 800DF46C AFB1006C */ sw $s1, 0x6c($sp)
/* 78920 800DF470 00A0882D */ daddu $s1, $a1, $zero
/* 78924 800DF474 AFB5007C */ sw $s5, 0x7c($sp)
/* 78928 800DF478 00C0A82D */ daddu $s5, $a2, $zero
/* 7892C 800DF47C AFB20070 */ sw $s2, 0x70($sp)
/* 78930 800DF480 00E0902D */ daddu $s2, $a3, $zero
/* 78934 800DF484 AFB30074 */ sw $s3, 0x74($sp)
/* 78938 800DF488 AFBF0080 */ sw $ra, 0x80($sp)
/* 7893C 800DF48C AFB00068 */ sw $s0, 0x68($sp)
/* 78940 800DF490 F7BE00B0 */ sdc1 $f30, 0xb0($sp)
/* 78944 800DF494 F7BC00A8 */ sdc1 $f28, 0xa8($sp)
/* 78948 800DF498 F7BA00A0 */ sdc1 $f26, 0xa0($sp)
/* 7894C 800DF49C F7B80098 */ sdc1 $f24, 0x98($sp)
/* 78950 800DF4A0 F7B60090 */ sdc1 $f22, 0x90($sp)
/* 78954 800DF4A4 F7B40088 */ sdc1 $f20, 0x88($sp)
/* 78958 800DF4A8 8E820000 */ lw $v0, ($s4)
/* 7895C 800DF4AC 4480A000 */ mtc1 $zero, $f20
/* 78960 800DF4B0 C7BC00C8 */ lwc1 $f28, 0xc8($sp)
/* 78964 800DF4B4 30420006 */ andi $v0, $v0, 6
/* 78968 800DF4B8 14400004 */ bnez $v0, .L800DF4CC
/* 7896C 800DF4BC 2413FFFF */ addiu $s3, $zero, -1
/* 78970 800DF4C0 3C014120 */ lui $at, 0x4120
/* 78974 800DF4C4 342128F6 */ ori $at, $at, 0x28f6
/* 78978 800DF4C8 4481A000 */ mtc1 $at, $f20
.L800DF4CC:
/* 7897C 800DF4CC 27A50038 */ addiu $a1, $sp, 0x38
/* 78980 800DF4D0 3C0140C9 */ lui $at, 0x40c9
/* 78984 800DF4D4 34210FD0 */ ori $at, $at, 0xfd0
/* 78988 800DF4D8 44810000 */ mtc1 $at, $f0
/* 7898C 800DF4DC C7A400CC */ lwc1 $f4, 0xcc($sp)
/* 78990 800DF4E0 27A6003C */ addiu $a2, $sp, 0x3c
/* 78994 800DF4E4 46002102 */ mul.s $f4, $f4, $f0
/* 78998 800DF4E8 00000000 */ nop
/* 7899C 800DF4EC 868200B2 */ lh $v0, 0xb2($s4)
/* 789A0 800DF4F0 3C013F00 */ lui $at, 0x3f00
/* 789A4 800DF4F4 44811000 */ mtc1 $at, $f2
/* 789A8 800DF4F8 3C0143B4 */ lui $at, 0x43b4
/* 789AC 800DF4FC 44816000 */ mtc1 $at, $f12
/* 789B0 800DF500 44820000 */ mtc1 $v0, $f0
/* 789B4 800DF504 00000000 */ nop
/* 789B8 800DF508 46800020 */ cvt.s.w $f0, $f0
/* 789BC 800DF50C 46020782 */ mul.s $f30, $f0, $f2
/* 789C0 800DF510 00000000 */ nop
/* 789C4 800DF514 0C00A82D */ jal sin_cos_rad
/* 789C8 800DF518 460C2303 */ div.s $f12, $f4, $f12
/* 789CC 800DF51C 27A20040 */ addiu $v0, $sp, 0x40
/* 789D0 800DF520 461EE580 */ add.s $f22, $f28, $f30
/* 789D4 800DF524 C7A0003C */ lwc1 $f0, 0x3c($sp)
/* 789D8 800DF528 C7A20038 */ lwc1 $f2, 0x38($sp)
/* 789DC 800DF52C 46000007 */ neg.s $f0, $f0
/* 789E0 800DF530 E7A0003C */ swc1 $f0, 0x3c($sp)
/* 789E4 800DF534 E7B6004C */ swc1 $f22, 0x4c($sp)
/* 789E8 800DF538 C6A40000 */ lwc1 $f4, ($s5)
/* 789EC 800DF53C 4602E682 */ mul.s $f26, $f28, $f2
/* 789F0 800DF540 00000000 */ nop
/* 789F4 800DF544 AFA2001C */ sw $v0, 0x1c($sp)
/* 789F8 800DF548 27A20044 */ addiu $v0, $sp, 0x44
/* 789FC 800DF54C AFA20020 */ sw $v0, 0x20($sp)
/* 78A00 800DF550 27A20048 */ addiu $v0, $sp, 0x48
/* 78A04 800DF554 AFA20024 */ sw $v0, 0x24($sp)
/* 78A08 800DF558 27A2004C */ addiu $v0, $sp, 0x4c
/* 78A0C 800DF55C AFA20028 */ sw $v0, 0x28($sp)
/* 78A10 800DF560 27A20050 */ addiu $v0, $sp, 0x50
/* 78A14 800DF564 AFA2002C */ sw $v0, 0x2c($sp)
/* 78A18 800DF568 27A20054 */ addiu $v0, $sp, 0x54
/* 78A1C 800DF56C AFA20030 */ sw $v0, 0x30($sp)
/* 78A20 800DF570 27A20058 */ addiu $v0, $sp, 0x58
/* 78A24 800DF574 E7A20010 */ swc1 $f2, 0x10($sp)
/* 78A28 800DF578 AFA00014 */ sw $zero, 0x14($sp)
/* 78A2C 800DF57C E7A00018 */ swc1 $f0, 0x18($sp)
/* 78A30 800DF580 AFA20034 */ sw $v0, 0x34($sp)
/* 78A34 800DF584 46142100 */ add.s $f4, $f4, $f20
/* 78A38 800DF588 8E250000 */ lw $a1, ($s1)
/* 78A3C 800DF58C 8E470000 */ lw $a3, ($s2)
/* 78A40 800DF590 44062000 */ mfc1 $a2, $f4
/* 78A44 800DF594 4600E602 */ mul.s $f24, $f28, $f0
/* 78A48 800DF598 00000000 */ nop
/* 78A4C 800DF59C 0C037B97 */ jal player_raycast_general
/* 78A50 800DF5A0 0000202D */ daddu $a0, $zero, $zero
/* 78A54 800DF5A4 0040802D */ daddu $s0, $v0, $zero
/* 78A58 800DF5A8 06000008 */ bltz $s0, .L800DF5CC
/* 78A5C 800DF5AC 00000000 */ nop
/* 78A60 800DF5B0 C7A4004C */ lwc1 $f4, 0x4c($sp)
/* 78A64 800DF5B4 4616203E */ c.le.s $f4, $f22
/* 78A68 800DF5B8 00000000 */ nop
/* 78A6C 800DF5BC 45000003 */ bc1f .L800DF5CC
/* 78A70 800DF5C0 27A4005C */ addiu $a0, $sp, 0x5c
/* 78A74 800DF5C4 08037DA1 */ j .L800DF684
/* 78A78 800DF5C8 46162101 */ sub.s $f4, $f4, $f22
.L800DF5CC:
/* 78A7C 800DF5CC 868300B0 */ lh $v1, 0xb0($s4)
/* 78A80 800DF5D0 C6A60000 */ lwc1 $f6, ($s5)
/* 78A84 800DF5D4 C7A00038 */ lwc1 $f0, 0x38($sp)
/* 78A88 800DF5D8 AFA00014 */ sw $zero, 0x14($sp)
/* 78A8C 800DF5DC E7A00010 */ swc1 $f0, 0x10($sp)
/* 78A90 800DF5E0 C7A4003C */ lwc1 $f4, 0x3c($sp)
/* 78A94 800DF5E4 27A20040 */ addiu $v0, $sp, 0x40
/* 78A98 800DF5E8 AFA2001C */ sw $v0, 0x1c($sp)
/* 78A9C 800DF5EC 27A20044 */ addiu $v0, $sp, 0x44
/* 78AA0 800DF5F0 AFA20020 */ sw $v0, 0x20($sp)
/* 78AA4 800DF5F4 27A20048 */ addiu $v0, $sp, 0x48
/* 78AA8 800DF5F8 AFA20024 */ sw $v0, 0x24($sp)
/* 78AAC 800DF5FC 27A2004C */ addiu $v0, $sp, 0x4c
/* 78AB0 800DF600 3C013FE8 */ lui $at, 0x3fe8
/* 78AB4 800DF604 44810800 */ mtc1 $at, $f1
/* 78AB8 800DF608 44800000 */ mtc1 $zero, $f0
/* 78ABC 800DF60C 44831000 */ mtc1 $v1, $f2
/* 78AC0 800DF610 00000000 */ nop
/* 78AC4 800DF614 468010A1 */ cvt.d.w $f2, $f2
/* 78AC8 800DF618 AFA20028 */ sw $v0, 0x28($sp)
/* 78ACC 800DF61C 46201082 */ mul.d $f2, $f2, $f0
/* 78AD0 800DF620 00000000 */ nop
/* 78AD4 800DF624 27A20050 */ addiu $v0, $sp, 0x50
/* 78AD8 800DF628 AFA2002C */ sw $v0, 0x2c($sp)
/* 78ADC 800DF62C 27A20054 */ addiu $v0, $sp, 0x54
/* 78AE0 800DF630 AFA20030 */ sw $v0, 0x30($sp)
/* 78AE4 800DF634 27A20058 */ addiu $v0, $sp, 0x58
/* 78AE8 800DF638 AFA20034 */ sw $v0, 0x34($sp)
/* 78AEC 800DF63C E7A40018 */ swc1 $f4, 0x18($sp)
/* 78AF0 800DF640 46201520 */ cvt.s.d $f20, $f2
/* 78AF4 800DF644 46143180 */ add.s $f6, $f6, $f20
/* 78AF8 800DF648 8E250000 */ lw $a1, ($s1)
/* 78AFC 800DF64C 8E470000 */ lw $a3, ($s2)
/* 78B00 800DF650 44063000 */ mfc1 $a2, $f6
/* 78B04 800DF654 0C037B97 */ jal player_raycast_general
/* 78B08 800DF658 0000202D */ daddu $a0, $zero, $zero
/* 78B0C 800DF65C 0040802D */ daddu $s0, $v0, $zero
/* 78B10 800DF660 06000021 */ bltz $s0, .L800DF6E8
/* 78B14 800DF664 00000000 */ nop
/* 78B18 800DF668 461EE000 */ add.s $f0, $f28, $f30
/* 78B1C 800DF66C C7A4004C */ lwc1 $f4, 0x4c($sp)
/* 78B20 800DF670 4600203E */ c.le.s $f4, $f0
/* 78B24 800DF674 00000000 */ nop
/* 78B28 800DF678 4500001B */ bc1f .L800DF6E8
/* 78B2C 800DF67C 27A4005C */ addiu $a0, $sp, 0x5c
/* 78B30 800DF680 46002101 */ sub.s $f4, $f4, $f0
.L800DF684:
/* 78B34 800DF684 4406D000 */ mfc1 $a2, $f26
/* 78B38 800DF688 C7A00038 */ lwc1 $f0, 0x38($sp)
/* 78B3C 800DF68C 4407C000 */ mfc1 $a3, $f24
/* 78B40 800DF690 C7A2003C */ lwc1 $f2, 0x3c($sp)
/* 78B44 800DF694 46002582 */ mul.s $f22, $f4, $f0
/* 78B48 800DF698 00000000 */ nop
/* 78B4C 800DF69C C7A00050 */ lwc1 $f0, 0x50($sp)
/* 78B50 800DF6A0 27A50060 */ addiu $a1, $sp, 0x60
/* 78B54 800DF6A4 E7A00010 */ swc1 $f0, 0x10($sp)
/* 78B58 800DF6A8 C7A00058 */ lwc1 $f0, 0x58($sp)
/* 78B5C 800DF6AC 46022502 */ mul.s $f20, $f4, $f2
/* 78B60 800DF6B0 00000000 */ nop
/* 78B64 800DF6B4 0C037CFF */ jal player_get_slip_vector
/* 78B68 800DF6B8 E7A00014 */ swc1 $f0, 0x14($sp)
/* 78B6C 800DF6BC C7A2005C */ lwc1 $f2, 0x5c($sp)
/* 78B70 800DF6C0 4602B080 */ add.s $f2, $f22, $f2
/* 78B74 800DF6C4 C6200000 */ lwc1 $f0, ($s1)
/* 78B78 800DF6C8 46020000 */ add.s $f0, $f0, $f2
/* 78B7C 800DF6CC E6200000 */ swc1 $f0, ($s1)
/* 78B80 800DF6D0 C7A00060 */ lwc1 $f0, 0x60($sp)
/* 78B84 800DF6D4 4600A000 */ add.s $f0, $f20, $f0
/* 78B88 800DF6D8 C6420000 */ lwc1 $f2, ($s2)
/* 78B8C 800DF6DC 46001080 */ add.s $f2, $f2, $f0
/* 78B90 800DF6E0 0200982D */ daddu $s3, $s0, $zero
/* 78B94 800DF6E4 E6420000 */ swc1 $f2, ($s2)
.L800DF6E8:
/* 78B98 800DF6E8 C6200000 */ lwc1 $f0, ($s1)
/* 78B9C 800DF6EC 461A0000 */ add.s $f0, $f0, $f26
/* 78BA0 800DF6F0 E6200000 */ swc1 $f0, ($s1)
/* 78BA4 800DF6F4 C6400000 */ lwc1 $f0, ($s2)
/* 78BA8 800DF6F8 46180000 */ add.s $f0, $f0, $f24
/* 78BAC 800DF6FC 0260102D */ daddu $v0, $s3, $zero
/* 78BB0 800DF700 E6400000 */ swc1 $f0, ($s2)
/* 78BB4 800DF704 8FBF0080 */ lw $ra, 0x80($sp)
/* 78BB8 800DF708 8FB5007C */ lw $s5, 0x7c($sp)
/* 78BBC 800DF70C 8FB40078 */ lw $s4, 0x78($sp)
/* 78BC0 800DF710 8FB30074 */ lw $s3, 0x74($sp)
/* 78BC4 800DF714 8FB20070 */ lw $s2, 0x70($sp)
/* 78BC8 800DF718 8FB1006C */ lw $s1, 0x6c($sp)
/* 78BCC 800DF71C 8FB00068 */ lw $s0, 0x68($sp)
/* 78BD0 800DF720 D7BE00B0 */ ldc1 $f30, 0xb0($sp)
/* 78BD4 800DF724 D7BC00A8 */ ldc1 $f28, 0xa8($sp)
/* 78BD8 800DF728 D7BA00A0 */ ldc1 $f26, 0xa0($sp)
/* 78BDC 800DF72C D7B80098 */ ldc1 $f24, 0x98($sp)
/* 78BE0 800DF730 D7B60090 */ ldc1 $f22, 0x90($sp)
/* 78BE4 800DF734 D7B40088 */ ldc1 $f20, 0x88($sp)
/* 78BE8 800DF738 03E00008 */ jr $ra
/* 78BEC 800DF73C 27BD00B8 */ addiu $sp, $sp, 0xb8

View File

@ -1,182 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_8010BC50
.double 0.1, 0.0
.section .text
glabel player_test_move_without_slipping
/* 7860C 800DF15C 27BDFF60 */ addiu $sp, $sp, -0xa0
/* 78610 800DF160 AFB1006C */ sw $s1, 0x6c($sp)
/* 78614 800DF164 00A0882D */ daddu $s1, $a1, $zero
/* 78618 800DF168 AFB00068 */ sw $s0, 0x68($sp)
/* 7861C 800DF16C 00C0802D */ daddu $s0, $a2, $zero
/* 78620 800DF170 AFBF0078 */ sw $ra, 0x78($sp)
/* 78624 800DF174 AFB30074 */ sw $s3, 0x74($sp)
/* 78628 800DF178 AFB20070 */ sw $s2, 0x70($sp)
/* 7862C 800DF17C F7BA0098 */ sdc1 $f26, 0x98($sp)
/* 78630 800DF180 F7B80090 */ sdc1 $f24, 0x90($sp)
/* 78634 800DF184 F7B60088 */ sdc1 $f22, 0x88($sp)
/* 78638 800DF188 F7B40080 */ sdc1 $f20, 0x80($sp)
/* 7863C 800DF18C 848200B2 */ lh $v0, 0xb2($a0)
/* 78640 800DF190 3C013F00 */ lui $at, 0x3f00
/* 78644 800DF194 44811000 */ mtc1 $at, $f2
/* 78648 800DF198 44820000 */ mtc1 $v0, $f0
/* 7864C 800DF19C 00000000 */ nop
/* 78650 800DF1A0 46800020 */ cvt.s.w $f0, $f0
/* 78654 800DF1A4 46020582 */ mul.s $f22, $f0, $f2
/* 78658 800DF1A8 00000000 */ nop
/* 7865C 800DF1AC 00E0902D */ daddu $s2, $a3, $zero
/* 78660 800DF1B0 C7A200B4 */ lwc1 $f2, 0xb4($sp)
/* 78664 800DF1B4 3C0140C9 */ lui $at, 0x40c9
/* 78668 800DF1B8 34210FD0 */ ori $at, $at, 0xfd0
/* 7866C 800DF1BC 44810000 */ mtc1 $at, $f0
/* 78670 800DF1C0 27A50038 */ addiu $a1, $sp, 0x38
/* 78674 800DF1C4 46001082 */ mul.s $f2, $f2, $f0
/* 78678 800DF1C8 00000000 */ nop
/* 7867C 800DF1CC 27A6003C */ addiu $a2, $sp, 0x3c
/* 78680 800DF1D0 848200B0 */ lh $v0, 0xb0($a0)
/* 78684 800DF1D4 3C013E92 */ lui $at, 0x3e92
/* 78688 800DF1D8 34216E98 */ ori $at, $at, 0x6e98
/* 7868C 800DF1DC 44810000 */ mtc1 $at, $f0
/* 78690 800DF1E0 44822000 */ mtc1 $v0, $f4
/* 78694 800DF1E4 00000000 */ nop
/* 78698 800DF1E8 46802120 */ cvt.s.w $f4, $f4
/* 7869C 800DF1EC 46002682 */ mul.s $f26, $f4, $f0
/* 786A0 800DF1F0 00000000 */ nop
/* 786A4 800DF1F4 3C0143B4 */ lui $at, 0x43b4
/* 786A8 800DF1F8 44816000 */ mtc1 $at, $f12
/* 786AC 800DF1FC C7B800B0 */ lwc1 $f24, 0xb0($sp)
/* 786B0 800DF200 0C00A82D */ jal sin_cos_rad
/* 786B4 800DF204 460C1303 */ div.s $f12, $f2, $f12
/* 786B8 800DF208 4616C500 */ add.s $f20, $f24, $f22
/* 786BC 800DF20C C7A0003C */ lwc1 $f0, 0x3c($sp)
/* 786C0 800DF210 C7A40038 */ lwc1 $f4, 0x38($sp)
/* 786C4 800DF214 46000007 */ neg.s $f0, $f0
/* 786C8 800DF218 E7A0003C */ swc1 $f0, 0x3c($sp)
/* 786CC 800DF21C E7B4004C */ swc1 $f20, 0x4c($sp)
/* 786D0 800DF220 C6020000 */ lwc1 $f2, ($s0)
/* 786D4 800DF224 2413FFFF */ addiu $s3, $zero, -1
/* 786D8 800DF228 E7A00018 */ swc1 $f0, 0x18($sp)
/* 786DC 800DF22C 3C018011 */ lui $at, %hi(D_8010BC50)
/* 786E0 800DF230 D420BC50 */ ldc1 $f0, %lo(D_8010BC50)($at)
/* 786E4 800DF234 27A20040 */ addiu $v0, $sp, 0x40
/* 786E8 800DF238 AFA2001C */ sw $v0, 0x1c($sp)
/* 786EC 800DF23C 27A20044 */ addiu $v0, $sp, 0x44
/* 786F0 800DF240 AFA20020 */ sw $v0, 0x20($sp)
/* 786F4 800DF244 27A20048 */ addiu $v0, $sp, 0x48
/* 786F8 800DF248 AFA20024 */ sw $v0, 0x24($sp)
/* 786FC 800DF24C 27A2004C */ addiu $v0, $sp, 0x4c
/* 78700 800DF250 AFA20028 */ sw $v0, 0x28($sp)
/* 78704 800DF254 27A20050 */ addiu $v0, $sp, 0x50
/* 78708 800DF258 AFA2002C */ sw $v0, 0x2c($sp)
/* 7870C 800DF25C 27A20054 */ addiu $v0, $sp, 0x54
/* 78710 800DF260 AFA20030 */ sw $v0, 0x30($sp)
/* 78714 800DF264 27A20058 */ addiu $v0, $sp, 0x58
/* 78718 800DF268 E7A40010 */ swc1 $f4, 0x10($sp)
/* 7871C 800DF26C AFA00014 */ sw $zero, 0x14($sp)
/* 78720 800DF270 AFA20034 */ sw $v0, 0x34($sp)
/* 78724 800DF274 460010A1 */ cvt.d.s $f2, $f2
/* 78728 800DF278 46201080 */ add.d $f2, $f2, $f0
/* 7872C 800DF27C 8E250000 */ lw $a1, ($s1)
/* 78730 800DF280 8E470000 */ lw $a3, ($s2)
/* 78734 800DF284 462010A0 */ cvt.s.d $f2, $f2
/* 78738 800DF288 44061000 */ mfc1 $a2, $f2
/* 7873C 800DF28C 0C037B97 */ jal player_raycast_general
/* 78740 800DF290 0000202D */ daddu $a0, $zero, $zero
/* 78744 800DF294 04420009 */ bltzl $v0, .L800DF2BC
/* 78748 800DF298 4616C500 */ add.s $f20, $f24, $f22
/* 7874C 800DF29C C7A0004C */ lwc1 $f0, 0x4c($sp)
/* 78750 800DF2A0 4614003E */ c.le.s $f0, $f20
/* 78754 800DF2A4 00000000 */ nop
/* 78758 800DF2A8 45000003 */ bc1f .L800DF2B8
/* 7875C 800DF2AC 24030001 */ addiu $v1, $zero, 1
/* 78760 800DF2B0 8FA200B8 */ lw $v0, 0xb8($sp)
/* 78764 800DF2B4 AC430000 */ sw $v1, ($v0)
.L800DF2B8:
/* 78768 800DF2B8 4616C500 */ add.s $f20, $f24, $f22
.L800DF2BC:
/* 7876C 800DF2BC C7A00038 */ lwc1 $f0, 0x38($sp)
/* 78770 800DF2C0 C7A2003C */ lwc1 $f2, 0x3c($sp)
/* 78774 800DF2C4 E7B4004C */ swc1 $f20, 0x4c($sp)
/* 78778 800DF2C8 C6040000 */ lwc1 $f4, ($s0)
/* 7877C 800DF2CC 27A20040 */ addiu $v0, $sp, 0x40
/* 78780 800DF2D0 AFA2001C */ sw $v0, 0x1c($sp)
/* 78784 800DF2D4 27A20044 */ addiu $v0, $sp, 0x44
/* 78788 800DF2D8 AFA20020 */ sw $v0, 0x20($sp)
/* 7878C 800DF2DC 27A20048 */ addiu $v0, $sp, 0x48
/* 78790 800DF2E0 AFA20024 */ sw $v0, 0x24($sp)
/* 78794 800DF2E4 27A2004C */ addiu $v0, $sp, 0x4c
/* 78798 800DF2E8 AFA20028 */ sw $v0, 0x28($sp)
/* 7879C 800DF2EC 27A20050 */ addiu $v0, $sp, 0x50
/* 787A0 800DF2F0 AFA2002C */ sw $v0, 0x2c($sp)
/* 787A4 800DF2F4 27A20054 */ addiu $v0, $sp, 0x54
/* 787A8 800DF2F8 AFA20030 */ sw $v0, 0x30($sp)
/* 787AC 800DF2FC 27A20058 */ addiu $v0, $sp, 0x58
/* 787B0 800DF300 E7A00010 */ swc1 $f0, 0x10($sp)
/* 787B4 800DF304 AFA00014 */ sw $zero, 0x14($sp)
/* 787B8 800DF308 E7A20018 */ swc1 $f2, 0x18($sp)
/* 787BC 800DF30C AFA20034 */ sw $v0, 0x34($sp)
/* 787C0 800DF310 461A2100 */ add.s $f4, $f4, $f26
/* 787C4 800DF314 8E250000 */ lw $a1, ($s1)
/* 787C8 800DF318 8E470000 */ lw $a3, ($s2)
/* 787CC 800DF31C 44062000 */ mfc1 $a2, $f4
/* 787D0 800DF320 0C037B97 */ jal player_raycast_general
/* 787D4 800DF324 0000202D */ daddu $a0, $zero, $zero
/* 787D8 800DF328 4480C000 */ mtc1 $zero, $f24
/* 787DC 800DF32C 0040802D */ daddu $s0, $v0, $zero
/* 787E0 800DF330 06000020 */ bltz $s0, .L800DF3B4
/* 787E4 800DF334 4600C686 */ mov.s $f26, $f24
/* 787E8 800DF338 C7B6004C */ lwc1 $f22, 0x4c($sp)
/* 787EC 800DF33C 4614B03E */ c.le.s $f22, $f20
/* 787F0 800DF340 00000000 */ nop
/* 787F4 800DF344 4500001B */ bc1f .L800DF3B4
/* 787F8 800DF348 27A4005C */ addiu $a0, $sp, 0x5c
/* 787FC 800DF34C 4614B581 */ sub.s $f22, $f22, $f20
/* 78800 800DF350 4406C000 */ mfc1 $a2, $f24
/* 78804 800DF354 C7B40038 */ lwc1 $f20, 0x38($sp)
/* 78808 800DF358 4407C000 */ mfc1 $a3, $f24
/* 7880C 800DF35C C7A2003C */ lwc1 $f2, 0x3c($sp)
/* 78810 800DF360 4614B502 */ mul.s $f20, $f22, $f20
/* 78814 800DF364 00000000 */ nop
/* 78818 800DF368 C7A00050 */ lwc1 $f0, 0x50($sp)
/* 7881C 800DF36C 27A50060 */ addiu $a1, $sp, 0x60
/* 78820 800DF370 E7A00010 */ swc1 $f0, 0x10($sp)
/* 78824 800DF374 C7A00058 */ lwc1 $f0, 0x58($sp)
/* 78828 800DF378 4602B582 */ mul.s $f22, $f22, $f2
/* 7882C 800DF37C 00000000 */ nop
/* 78830 800DF380 0C037CFF */ jal player_get_slip_vector
/* 78834 800DF384 E7A00014 */ swc1 $f0, 0x14($sp)
/* 78838 800DF388 C7A0005C */ lwc1 $f0, 0x5c($sp)
/* 7883C 800DF38C 4600A500 */ add.s $f20, $f20, $f0
/* 78840 800DF390 C6200000 */ lwc1 $f0, ($s1)
/* 78844 800DF394 46140000 */ add.s $f0, $f0, $f20
/* 78848 800DF398 E6200000 */ swc1 $f0, ($s1)
/* 7884C 800DF39C C7A00060 */ lwc1 $f0, 0x60($sp)
/* 78850 800DF3A0 4600B580 */ add.s $f22, $f22, $f0
/* 78854 800DF3A4 C6400000 */ lwc1 $f0, ($s2)
/* 78858 800DF3A8 46160000 */ add.s $f0, $f0, $f22
/* 7885C 800DF3AC 0200982D */ daddu $s3, $s0, $zero
/* 78860 800DF3B0 E6400000 */ swc1 $f0, ($s2)
.L800DF3B4:
/* 78864 800DF3B4 C6200000 */ lwc1 $f0, ($s1)
/* 78868 800DF3B8 461A0000 */ add.s $f0, $f0, $f26
/* 7886C 800DF3BC E6200000 */ swc1 $f0, ($s1)
/* 78870 800DF3C0 C6400000 */ lwc1 $f0, ($s2)
/* 78874 800DF3C4 46180000 */ add.s $f0, $f0, $f24
/* 78878 800DF3C8 0260102D */ daddu $v0, $s3, $zero
/* 7887C 800DF3CC E6400000 */ swc1 $f0, ($s2)
/* 78880 800DF3D0 8FBF0078 */ lw $ra, 0x78($sp)
/* 78884 800DF3D4 8FB30074 */ lw $s3, 0x74($sp)
/* 78888 800DF3D8 8FB20070 */ lw $s2, 0x70($sp)
/* 7888C 800DF3DC 8FB1006C */ lw $s1, 0x6c($sp)
/* 78890 800DF3E0 8FB00068 */ lw $s0, 0x68($sp)
/* 78894 800DF3E4 D7BA0098 */ ldc1 $f26, 0x98($sp)
/* 78898 800DF3E8 D7B80090 */ ldc1 $f24, 0x90($sp)
/* 7889C 800DF3EC D7B60088 */ ldc1 $f22, 0x88($sp)
/* 788A0 800DF3F0 D7B40080 */ ldc1 $f20, 0x80($sp)
/* 788A4 800DF3F4 03E00008 */ jr $ra
/* 788A8 800DF3F8 27BD00A0 */ addiu $sp, $sp, 0xa0

View File

@ -873,7 +873,7 @@ glabel update_item_entity_collectable
/* CB60C 80134F0C 27A2002C */ addiu $v0, $sp, 0x2c
/* CB610 80134F10 AFA20010 */ sw $v0, 0x10($sp)
/* CB614 80134F14 E7A00014 */ swc1 $f0, 0x14($sp)
/* CB618 80134F18 0C0371DE */ jal npc_raycast_down_ahead
/* CB618 80134F18 0C0371DE */ jal npc_raycast_down_around
/* CB61C 80134F1C E7A20018 */ swc1 $f2, 0x18($sp)
/* CB620 80134F20 0804D3E1 */ j .L80134F84
/* CB624 80134F24 00000000 */ nop

View File

@ -42,7 +42,7 @@ glabel func_802430B4_855224
/* 8552B8 80243148 46800020 */ cvt.s.w $f0, $f0
/* 8552BC 8024314C E7A00018 */ swc1 $f0, 0x18($sp)
/* 8552C0 80243150 8C840080 */ lw $a0, 0x80($a0)
/* 8552C4 80243154 0C0371DE */ jal npc_raycast_down_ahead
/* 8552C4 80243154 0C0371DE */ jal npc_raycast_down_around
/* 8552C8 80243158 27A70028 */ addiu $a3, $sp, 0x28
/* 8552CC 8024315C 10400009 */ beqz $v0, .L80243184
/* 8552D0 80243160 0240202D */ daddu $a0, $s2, $zero

View File

@ -36,7 +36,7 @@ glabel func_802400DC_D7895C
/* D789D8 80240158 44830000 */ mtc1 $v1, $f0
/* D789DC 8024015C 00000000 */ nop
/* D789E0 80240160 46800020 */ cvt.s.w $f0, $f0
/* D789E4 80240164 0C0371DE */ jal npc_raycast_down_ahead
/* D789E4 80240164 0C0371DE */ jal npc_raycast_down_around
/* D789E8 80240168 E7A00018 */ swc1 $f0, 0x18($sp)
/* D789EC 8024016C C7A00020 */ lwc1 $f0, 0x20($sp)
/* D789F0 80240170 C7A20028 */ lwc1 $f2, 0x28($sp)

View File

@ -42,7 +42,7 @@ glabel func_80242074_D3C644
/* D3C6D8 80242108 46800020 */ cvt.s.w $f0, $f0
/* D3C6DC 8024210C E7A00018 */ swc1 $f0, 0x18($sp)
/* D3C6E0 80242110 8C840080 */ lw $a0, 0x80($a0)
/* D3C6E4 80242114 0C0371DE */ jal npc_raycast_down_ahead
/* D3C6E4 80242114 0C0371DE */ jal npc_raycast_down_around
/* D3C6E8 80242118 27A70028 */ addiu $a3, $sp, 0x28
/* D3C6EC 8024211C 10400009 */ beqz $v0, .L80242144
/* D3C6F0 80242120 0240202D */ daddu $a0, $s2, $zero

View File

@ -342,7 +342,7 @@ glabel func_802BD758_3184A8
/* 318998 802BDC48 44820000 */ mtc1 $v0, $f0
/* 31899C 802BDC4C 00000000 */ nop
/* 3189A0 802BDC50 46800020 */ cvt.s.w $f0, $f0
/* 3189A4 802BDC54 0C0371DE */ jal npc_raycast_down_ahead
/* 3189A4 802BDC54 0C0371DE */ jal npc_raycast_down_around
/* 3189A8 802BDC58 E7A00018 */ swc1 $f0, 0x18($sp)
/* 3189AC 802BDC5C 10400023 */ beqz $v0, .L802BDCEC
/* 3189B0 802BDC60 00000000 */ nop

View File

@ -711,7 +711,7 @@ glabel func_802BD660_319BD0
/* 31A630 802BE0C0 44820000 */ mtc1 $v0, $f0
/* 31A634 802BE0C4 00000000 */ nop
/* 31A638 802BE0C8 46800020 */ cvt.s.w $f0, $f0
/* 31A63C 802BE0CC 0C0371DE */ jal npc_raycast_down_ahead
/* 31A63C 802BE0CC 0C0371DE */ jal npc_raycast_down_around
/* 31A640 802BE0D0 E7A00018 */ swc1 $f0, 0x18($sp)
/* 31A644 802BE0D4 10400020 */ beqz $v0, .L802BE158
/* 31A648 802BE0D8 00000000 */ nop
@ -1084,7 +1084,7 @@ glabel func_802BD660_319BD0
/* 31ABD0 802BE660 44820000 */ mtc1 $v0, $f0
/* 31ABD4 802BE664 00000000 */ nop
/* 31ABD8 802BE668 46800020 */ cvt.s.w $f0, $f0
/* 31ABDC 802BE66C 0C0371DE */ jal npc_raycast_down_ahead
/* 31ABDC 802BE66C 0C0371DE */ jal npc_raycast_down_around
/* 31ABE0 802BE670 E7A00018 */ swc1 $f0, 0x18($sp)
/* 31ABE4 802BE674 10400018 */ beqz $v0, .L802BE6D8
/* 31ABE8 802BE678 0200202D */ daddu $a0, $s0, $zero

View File

@ -582,7 +582,7 @@ glabel func_802BD414_31E184
/* 31E9FC 802BDC8C 46800020 */ cvt.s.w $f0, $f0
/* 31EA00 802BDC90 E7A00018 */ swc1 $f0, 0x18($sp)
/* 31EA04 802BDC94 8E040080 */ lw $a0, 0x80($s0)
/* 31EA08 802BDC98 0C0371DE */ jal npc_raycast_down_ahead
/* 31EA08 802BDC98 0C0371DE */ jal npc_raycast_down_around
/* 31EA0C 802BDC9C 27A70038 */ addiu $a3, $sp, 0x38
/* 31EA10 802BDCA0 1040001D */ beqz $v0, .L802BDD18
/* 31EA14 802BDCA4 00000000 */ nop

View File

@ -241,7 +241,7 @@ glabel func_802BE3A4_31F114
/* 31F480 802BE710 46800020 */ cvt.s.w $f0, $f0
/* 31F484 802BE714 E7A00018 */ swc1 $f0, 0x18($sp)
/* 31F488 802BE718 8E240080 */ lw $a0, 0x80($s1)
/* 31F48C 802BE71C 0C0371DE */ jal npc_raycast_down_ahead
/* 31F48C 802BE71C 0C0371DE */ jal npc_raycast_down_around
/* 31F490 802BE720 0280382D */ daddu $a3, $s4, $zero
/* 31F494 802BE724 3C050007 */ lui $a1, 7
/* 31F498 802BE728 34A50003 */ ori $a1, $a1, 3
@ -828,7 +828,7 @@ glabel func_802BE3A4_31F114
/* 31FD50 802BEFE0 AFA00018 */ sw $zero, 0x18($sp)
/* 31FD54 802BEFE4 E7A00014 */ swc1 $f0, 0x14($sp)
/* 31FD58 802BEFE8 8E240080 */ lw $a0, 0x80($s1)
/* 31FD5C 802BEFEC 0C0371DE */ jal npc_raycast_down_ahead
/* 31FD5C 802BEFEC 0C0371DE */ jal npc_raycast_down_around
/* 31FD60 802BEFF0 0280382D */ daddu $a3, $s4, $zero
/* 31FD64 802BEFF4 1040013E */ beqz $v0, .L802BF4F0_320260
/* 31FD68 802BEFF8 AFA20040 */ sw $v0, 0x40($sp)
@ -893,7 +893,7 @@ glabel func_802BE3A4_31F114
/* 31FE54 802BF0E4 AFA00018 */ sw $zero, 0x18($sp)
/* 31FE58 802BF0E8 E7A00014 */ swc1 $f0, 0x14($sp)
/* 31FE5C 802BF0EC 8E240080 */ lw $a0, 0x80($s1)
/* 31FE60 802BF0F0 0C0371DE */ jal npc_raycast_down_ahead
/* 31FE60 802BF0F0 0C0371DE */ jal npc_raycast_down_around
/* 31FE64 802BF0F4 0280382D */ daddu $a3, $s4, $zero
/* 31FE68 802BF0F8 C7A00024 */ lwc1 $f0, 0x24($sp)
/* 31FE6C 802BF0FC C7A20020 */ lwc1 $f2, 0x20($sp)

View File

@ -903,7 +903,7 @@ glabel partner_flying_follow_player
/* 87BE8 800EE738 44830000 */ mtc1 $v1, $f0
/* 87BEC 800EE73C 00000000 */ nop
/* 87BF0 800EE740 46800020 */ cvt.s.w $f0, $f0
/* 87BF4 800EE744 0C0371DE */ jal npc_raycast_down_ahead
/* 87BF4 800EE744 0C0371DE */ jal npc_raycast_down_around
/* 87BF8 800EE748 E7A00018 */ swc1 $f0, 0x18($sp)
/* 87BFC 800EE74C 14400017 */ bnez $v0, .L800EE7AC
/* 87C00 800EE750 00000000 */ nop

View File

@ -143,7 +143,7 @@ glabel partner_flying_update_motion
/* 86C90 800ED7E0 44820000 */ mtc1 $v0, $f0
/* 86C94 800ED7E4 00000000 */ nop
/* 86C98 800ED7E8 46800020 */ cvt.s.w $f0, $f0
/* 86C9C 800ED7EC 0C0371DE */ jal npc_raycast_down_ahead
/* 86C9C 800ED7EC 0C0371DE */ jal npc_raycast_down_around
/* 86CA0 800ED7F0 E7A00018 */ swc1 $f0, 0x18($sp)
/* 86CA4 800ED7F4 14400003 */ bnez $v0, .L800ED804
/* 86CA8 800ED7F8 00000000 */ nop

View File

@ -146,7 +146,7 @@ glabel partner_get_out
/* 883B8 800EEF08 44820000 */ mtc1 $v0, $f0
/* 883BC 800EEF0C 00000000 */ nop
/* 883C0 800EEF10 46800020 */ cvt.s.w $f0, $f0
/* 883C4 800EEF14 0C0371DE */ jal npc_raycast_down_ahead
/* 883C4 800EEF14 0C0371DE */ jal npc_raycast_down_around
/* 883C8 800EEF18 E7A00018 */ swc1 $f0, 0x18($sp)
/* 883CC 800EEF1C 10400011 */ beqz $v0, .L800EEF64
/* 883D0 800EEF20 0240202D */ daddu $a0, $s2, $zero

View File

@ -164,7 +164,7 @@ glabel partner_move_to_goal
/* 88F44 800EFA94 46800020 */ cvt.s.w $f0, $f0
/* 88F48 800EFA98 E7A00018 */ swc1 $f0, 0x18($sp)
/* 88F4C 800EFA9C 8E440080 */ lw $a0, 0x80($s2)
/* 88F50 800EFAA0 0C0371DE */ jal npc_raycast_down_ahead
/* 88F50 800EFAA0 0C0371DE */ jal npc_raycast_down_around
/* 88F54 800EFAA4 27A70028 */ addiu $a3, $sp, 0x28
/* 88F58 800EFAA8 10400028 */ beqz $v0, .L800EFB4C
/* 88F5C 800EFAAC 00000000 */ nop

View File

@ -630,7 +630,7 @@ glabel partner_walking_follow_player
/* 85A50 800EC5A0 46800020 */ cvt.s.w $f0, $f0
/* 85A54 800EC5A4 E7A00018 */ swc1 $f0, 0x18($sp)
/* 85A58 800EC5A8 8E240080 */ lw $a0, 0x80($s1)
/* 85A5C 800EC5AC 0C0371DE */ jal npc_raycast_down_ahead
/* 85A5C 800EC5AC 0C0371DE */ jal npc_raycast_down_around
/* 85A60 800EC5B0 26340040 */ addiu $s4, $s1, 0x40
/* 85A64 800EC5B4 1040004B */ beqz $v0, .L800EC6E4
/* 85A68 800EC5B8 00000000 */ nop
@ -932,7 +932,7 @@ glabel partner_walking_follow_player
/* 85EDC 800ECA2C 46800020 */ cvt.s.w $f0, $f0
/* 85EE0 800ECA30 E7A00018 */ swc1 $f0, 0x18($sp)
/* 85EE4 800ECA34 8E240080 */ lw $a0, 0x80($s1)
/* 85EE8 800ECA38 0C0371DE */ jal npc_raycast_down_ahead
/* 85EE8 800ECA38 0C0371DE */ jal npc_raycast_down_around
/* 85EEC 800ECA3C 27A70030 */ addiu $a3, $sp, 0x30
/* 85EF0 800ECA40 10400228 */ beqz $v0, .L800ED2E4_86794
/* 85EF4 800ECA44 00000000 */ nop
@ -1255,7 +1255,7 @@ glabel partner_walking_follow_player
/* 863A0 800ECEF0 46800020 */ cvt.s.w $f0, $f0
/* 863A4 800ECEF4 E7A00018 */ swc1 $f0, 0x18($sp)
/* 863A8 800ECEF8 8E240080 */ lw $a0, 0x80($s1)
/* 863AC 800ECEFC 0C0371DE */ jal npc_raycast_down_ahead
/* 863AC 800ECEFC 0C0371DE */ jal npc_raycast_down_around
/* 863B0 800ECF00 27A70030 */ addiu $a3, $sp, 0x30
/* 863B4 800ECF04 10400028 */ beqz $v0, .L800ECFA8
/* 863B8 800ECF08 00000000 */ nop
@ -1487,7 +1487,7 @@ glabel partner_walking_follow_player
/* 86708 800ED258 46800020 */ cvt.s.w $f0, $f0
/* 8670C 800ED25C E7A00018 */ swc1 $f0, 0x18($sp)
/* 86710 800ED260 8E240080 */ lw $a0, 0x80($s1)
/* 86714 800ED264 0C0371DE */ jal npc_raycast_down_ahead
/* 86714 800ED264 0C0371DE */ jal npc_raycast_down_around
/* 86718 800ED268 27A70030 */ addiu $a3, $sp, 0x30
/* 8671C 800ED26C 1040001D */ beqz $v0, .L800ED2E4_86794
/* 86720 800ED270 00000000 */ nop

View File

@ -1673,7 +1673,7 @@ D_8009A6A4 = 0x8009A6A4; // type:data rom:0x75AA4
D_8009A6A6 = 0x8009A6A6; // type:data rom:0x75AA6
D_8009A6A8 = 0x8009A6A8; // type:data rom:0x75AA8
D_8009A6B0 = 0x8009A6B0; // type:data rom:0x75AB0
npc_raycast_down_ahead = 0x800DC778; // type:func rom:0x75C28
npc_raycast_down_around = 0x800DC778; // type:func rom:0x75C28
npc_raycast_down_sides = 0x800DCB7C; // type:func rom:0x7602C
npc_raycast_up = 0x800DCE70; // type:func rom:0x76320
npc_raycast_up_corner = 0x800DD04C; // type:func rom:0x764FC