bipeds.h: biped_approximate_surface_index returns long (ai_script: 1 function strict exact)

Header packet P4 (150K lane). January's only external caller, ai_script.obj, tests the result with a full 32-bit cmp eax,-1 (no sign extension); the short prototype produced cmp ax,0xffff. The owner prototype and the bipeds.c definition now return long and the unevidenced (short) cast is dropped; declaration count unchanged, callee bytes unchanged. _ai_scripting_teleport_starting_location_private (288) becomes strict exact with an untouched body, so its park (premise: the widening perturbs consumers) is removed.

Consumers: 23 bipeds.h includers, shadow-compiled H vs P (0 losses). Live tree: full ninja + stable_verdicts sweep +1 gained / 0 regressions; parks 290/0/0.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Jonas VolmanandClaude Opus 5 committed 2026-09-14 08:07:38 -07:00
1 parent 6a473f30d3
commit 276b0368fe
3 files changed
+3 -14

No files matched your search

-11
View File
@@ -4725,17 +4725,6 @@
"objdiff_percent": 81.60833
}
},
{
"unit": "source/ai/ai_script",
"function": "_ai_scripting_teleport_starting_location_private",
"class": "instruction-scheduling",
"evidence": "Complete typed HCEA-backed teleport helper retained under its authenticated semantic private name. Target and candidate both occupy 288 padded bytes and have the same 13 relocation destinations; the remaining one-byte schedule displacement begins after the January biped_approximate_surface_index call. Widening that shared function's return type can close this helper but perturbs accepted consumers, so that ABI change is rejected. This natural body receives zero credit. See docs/object_matching_logs/ai_flee_teleport_model_node_packet_20260912.md.",
"measurements": {
"target": { "size": 288, "relocation_count": 13, "normalized_sha256": "755b7a6e2990f977b15fb61eb09a0106990c68fcd7d69128922e69cc12e52c5e" },
"base": { "size": 288, "relocation_count": 13, "normalized_sha256": "9c0415c2243227d13b1b96ca944e476f75acf40417113dab2fc3edcaa501b22e" },
"objdiff_percent": 99.9375
}
},
{
"unit": "source/items/weapons",
"function": "_weapon_can_be_fired",
+2 -2
View File
@@ -1492,11 +1492,11 @@ static long biped_find_ground_surface(
return surface_index;
}
short biped_approximate_surface_index(
long biped_approximate_surface_index(
long biped_index,
real_point3d *point)
{
return (short)biped_find_ground_surface(biped_index, global_down3d, 2.f, point, NULL);
return biped_find_ground_surface(biped_index, global_down3d, 2.f, point, NULL);
}
long biped_find_pathfinding_surface_index(
+1 -1
View File
@@ -158,7 +158,7 @@ void biped_falling_danger(
long biped_index);
void biped_render_debug(
long biped_index);
short biped_approximate_surface_index(
long biped_approximate_surface_index(
long biped_index,
real_point3d *point);
long biped_find_pathfinding_surface_index(