port Lara_Col_ClimbRight

This commit is contained in:
Marcin Kurczewski 2023-10-07 08:49:55 +02:00
parent e59ae1952c
commit a3533dacef
No known key found for this signature in database
GPG Key ID: CC65E6FD28CAE42A
7 changed files with 29 additions and 12 deletions

View File

@ -69,10 +69,10 @@
</g>
<g transform="translate(0 116)">
<text x="0" y="7.50">Tomb2.exe progress according to the physical function order:</text>
<text class="todo" style="font-size: 12px; " x="747" y="9"><tspan text-anchor="end"><tspan class="decompiled">12.92% (155)</tspan> · <tspan class="known">84.67% (1016)</tspan> · <tspan class="todo">0.67% (8)</tspan> · <tspan class="unused">1.75% (21)</tspan></tspan></text>
<text class="todo" style="font-size: 12px; " x="747" y="9"><tspan text-anchor="end"><tspan class="decompiled">13% (156)</tspan> · <tspan class="known">84.58% (1015)</tspan> · <tspan class="todo">0.67% (8)</tspan> · <tspan class="unused">1.75% (21)</tspan></tspan></text>
<g transform="translate(0 20)">
<rect width="96.49" height="6" x="0" y="0" class="decompiled"/>
<rect width="632.46" height="6" x="96.49" y="0" class="known"/>
<rect width="97.11" height="6" x="0" y="0" class="decompiled"/>
<rect width="631.84" height="6" x="97.11" y="0" class="known"/>
<rect width="4.98" height="6" x="728.95" y="0" class="todo"/>
<rect width="13.07" height="6" x="733.93" y="0" class="unused"/>
</g>
@ -601,7 +601,7 @@
<rect width="12" height="12" x="315" y="150" class="decompiled"><title>void __cdecl Lara_State_ClimbEnd(struct ITEM_INFO *item, struct COLL_INFO *coll);</title></rect>
<rect width="12" height="12" x="330" y="150" class="decompiled"><title>void __cdecl Lara_State_ClimbDown(struct ITEM_INFO *item, struct COLL_INFO *coll);</title></rect>
<rect width="12" height="12" x="345" y="150" class="decompiled"><title>void __cdecl Lara_Col_ClimbLeft(struct ITEM_INFO *item, struct COLL_INFO *coll);</title></rect>
<rect width="12" height="12" x="360" y="150" class="known"><title>void __cdecl Lara_Col_ClimbRight(struct ITEM_INFO *item, struct COLL_INFO *coll);</title></rect>
<rect width="12" height="12" x="360" y="150" class="decompiled"><title>void __cdecl Lara_Col_ClimbRight(struct ITEM_INFO *item, struct COLL_INFO *coll);</title></rect>
<rect width="12" height="12" x="375" y="150" class="known"><title>void __cdecl Lara_Col_ClimbStance(struct ITEM_INFO *item, struct COLL_INFO *coll);</title></rect>
<rect width="12" height="12" x="390" y="150" class="known"><title>void __cdecl Lara_Col_Climbing(struct ITEM_INFO *item, struct COLL_INFO *coll);</title></rect>
<rect width="12" height="12" x="405" y="150" class="known"><title>void __cdecl Lara_Col_ClimbDown(struct ITEM_INFO *item, struct COLL_INFO *coll);</title></rect>
@ -1281,10 +1281,10 @@
</g>
<g transform="translate(0 531)">
<text x="0" y="7.50">Tomb2.exe progress according to the function sizes:</text>
<text class="todo" style="font-size: 12px; " x="747" y="9"><tspan text-anchor="end"><tspan class="decompiled">6.71%</tspan> · <tspan class="known">92.96%</tspan> · <tspan class="todo">0.02%</tspan> · <tspan class="unused">0.31%</tspan></tspan></text>
<text class="todo" style="font-size: 12px; " x="747" y="9"><tspan text-anchor="end"><tspan class="decompiled">6.73%</tspan> · <tspan class="known">92.94%</tspan> · <tspan class="todo">0.02%</tspan> · <tspan class="unused">0.31%</tspan></tspan></text>
<g transform="translate(0 20)">
<rect width="50.10" height="6" x="0" y="0" class="decompiled"/>
<rect width="694.44" height="6" x="50.10" y="0" class="known"/>
<rect width="50.30" height="6" x="0" y="0" class="decompiled"/>
<rect width="694.24" height="6" x="50.30" y="0" class="known"/>
<rect width="0.13" height="6" x="744.54" y="0" class="todo"/>
<rect width="2.33" height="6" x="744.67" y="0" class="unused"/>
</g>
@ -2033,7 +2033,7 @@
<rect width="5.81" height="5.13" x="615.94" y="354.87" class="known"><title>int16_t __cdecl DoBloodSplat(int32_t x, int32_t y, int32_t z, int16_t speed, PHD_ANGLE direction, int16_t room_num);</title></rect>
<rect width="5.46" height="5.47" x="624.75" y="228.99" class="known"><title>void __cdecl DoChimeSound(struct ITEM_INFO *item);</title></rect>
<rect width="5.46" height="5.47" x="633.22" y="228.99" class="decompiled"><title>void __cdecl Lara_Col_Splat(struct ITEM_INFO *item, struct COLL_INFO *coll);</title></rect>
<rect width="5.46" height="5.47" x="641.68" y="228.99" class="known"><title>void __cdecl Lara_Col_ClimbRight(struct ITEM_INFO *item, struct COLL_INFO *coll);</title></rect>
<rect width="5.46" height="5.47" x="641.68" y="228.99" class="decompiled"><title>void __cdecl Lara_Col_ClimbRight(struct ITEM_INFO *item, struct COLL_INFO *coll);</title></rect>
<rect width="5.46" height="5.47" x="650.14" y="228.99" class="known"><title>void __cdecl HWR_ResetZBuffer(void);</title></rect>
<rect width="5.37" height="5.47" x="658.61" y="228.99" class="known"><title>void __cdecl InitialiseXianLord(int16_t item_num);</title></rect>
<rect width="5.37" height="5.47" x="666.98" y="228.99" class="known"><title>void __cdecl ClearBodyBag(void);</title></rect>

Before

Width:  |  Height:  |  Size: 357 KiB

After

Width:  |  Height:  |  Size: 357 KiB

View File

@ -1659,7 +1659,7 @@ typedef enum LARA_GUN_STATE {
0042D970 0000001E + void __cdecl Lara_State_ClimbEnd(struct ITEM_INFO *item, struct COLL_INFO *coll);
0042D990 00000014 + void __cdecl Lara_State_ClimbDown(struct ITEM_INFO *item, struct COLL_INFO *coll);
0042D9B0 0000005D + void __cdecl Lara_Col_ClimbLeft(struct ITEM_INFO *item, struct COLL_INFO *coll);
0042DA10 00000059 - void __cdecl Lara_Col_ClimbRight(struct ITEM_INFO *item, struct COLL_INFO *coll);
0042DA10 00000059 + void __cdecl Lara_Col_ClimbRight(struct ITEM_INFO *item, struct COLL_INFO *coll);
0042DA70 0000020D - void __cdecl Lara_Col_ClimbStance(struct ITEM_INFO *item, struct COLL_INFO *coll);
0042DC80 0000014D - void __cdecl Lara_Col_Climbing(struct ITEM_INFO *item, struct COLL_INFO *coll);
0042DDD0 0000019C - void __cdecl Lara_Col_ClimbDown(struct ITEM_INFO *item, struct COLL_INFO *coll);

View File

@ -793,8 +793,22 @@ void __cdecl Lara_Col_ClimbLeft(struct ITEM_INFO *item, struct COLL_INFO *coll)
int32_t shift;
int32_t result = Lara_TestClimbPos(
item, coll->radius, -(coll->radius + LARA_CLIMB_WIDTH),
item, coll->radius, -(coll->radius + LARA_CLIMB_WIDTH_LEFT),
-LARA_CLIMB_HIT_ELEVATION, LARA_CLIMB_HIT_ELEVATION, &shift);
Lara_DoClimbLeftRight(item, coll, result, shift);
}
void __cdecl Lara_Col_ClimbRight(struct ITEM_INFO *item, struct COLL_INFO *coll)
{
if (Lara_CheckForLetGo(item, coll)) {
return;
}
g_Lara.move_angle = item->pos.y_rot + PHD_90;
int32_t shift;
int32_t result = Lara_TestClimbPos(
item, coll->radius, coll->radius + LARA_CLIMB_WIDTH_RIGHT,
-LARA_CLIMB_HIT_ELEVATION, LARA_CLIMB_HIT_ELEVATION, &shift);
Lara_DoClimbLeftRight(item, coll, result, shift);
}

View File

@ -38,3 +38,5 @@ void __cdecl Lara_Col_Wade(struct ITEM_INFO *item, struct COLL_INFO *coll);
void __cdecl Lara_Col_Default(struct ITEM_INFO *item, struct COLL_INFO *coll);
void __cdecl Lara_Col_Jumper(struct ITEM_INFO *item, struct COLL_INFO *coll);
void __cdecl Lara_Col_ClimbLeft(struct ITEM_INFO *item, struct COLL_INFO *coll);
void __cdecl Lara_Col_ClimbRight(
struct ITEM_INFO *item, struct COLL_INFO *coll);

View File

@ -43,7 +43,8 @@
#define LARA_LEAN_MAX ((10 * PHD_DEGREE) + LARA_LEAN_UNDO) // = 2002
#define LARA_JUMP_TURN ((PHD_DEGREE * 1) + LARA_TURN_UNDO) // = 546
#define LARA_FAST_FALL_SPEED (FAST_FALL_SPEED + 3) // = 131
#define LARA_CLIMB_WIDTH 80
#define LARA_CLIMB_WIDTH_LEFT 80
#define LARA_CLIMB_WIDTH_RIGHT 120
#define LARA_CLIMB_HIT_ELEVATION (WALL_L / 2) // = 512
#define CAM_HANG_ANGLE 0

View File

@ -417,7 +417,6 @@
#define undraw_pistol_mesh_right ((void __cdecl (*)(int32_t weapon_type))0x0042D350)
#define PistolHandler ((void __cdecl (*)(int32_t weapon_type))0x0042D390)
#define AnimatePistols ((void __cdecl (*)(int32_t weapon_type))0x0042D520)
#define Lara_Col_ClimbRight ((void __cdecl (*)(struct ITEM_INFO *item, struct COLL_INFO *coll))0x0042DA10)
#define Lara_Col_ClimbStance ((void __cdecl (*)(struct ITEM_INFO *item, struct COLL_INFO *coll))0x0042DA70)
#define Lara_Col_Climbing ((void __cdecl (*)(struct ITEM_INFO *item, struct COLL_INFO *coll))0x0042DC80)
#define Lara_Col_ClimbDown ((void __cdecl (*)(struct ITEM_INFO *item, struct COLL_INFO *coll))0x0042DDD0)

View File

@ -178,6 +178,7 @@ static void Inject_Lara_Col(void)
INJECT(1, 0x00429FE0, Lara_Col_Default);
INJECT(1, 0x0042A020, Lara_Col_Jumper);
INJECT(1, 0x0042D9B0, Lara_Col_ClimbLeft);
INJECT(1, 0x0042DA10, Lara_Col_ClimbRight);
}
static void Inject_S_Audio_Sample(void)