diff --git a/docs/progress.svg b/docs/progress.svg
index fbf9830..9fa9e4a 100644
--- a/docs/progress.svg
+++ b/docs/progress.svg
@@ -69,10 +69,10 @@
Tomb2.exe progress according to the physical function order:
-7.58% (91) · 90% (1080) · 0.67% (8) · 1.75% (21)
+7.67% (92) · 89.92% (1079) · 0.67% (8) · 1.75% (21)
-
-
+
+
@@ -493,7 +493,7 @@
void __cdecl Lara_State_Fallback(struct ITEM_INFO *item, struct COLL_INFO *coll);
void __cdecl Lara_State_HangLeft(struct ITEM_INFO *item, struct COLL_INFO *coll);
void __cdecl Lara_State_HangRight(struct ITEM_INFO *item, struct COLL_INFO *coll);
-void __cdecl Lara_State_SlideBack(struct ITEM_INFO *item, struct COLL_INFO *coll);
+void __cdecl Lara_State_SlideBack(struct ITEM_INFO *item, struct COLL_INFO *coll);
void __cdecl Lara_State_PushBlock(struct ITEM_INFO *item, struct COLL_INFO *coll);
void __cdecl Lara_State_PPReady(struct ITEM_INFO *item, struct COLL_INFO *coll);
void __cdecl Lara_State_Pickup(struct ITEM_INFO *item, struct COLL_INFO *coll);
@@ -1281,10 +1281,10 @@
Tomb2.exe progress according to the function sizes:
-4.66% · 95.01% · 0.02% · 0.31%
+4.67% · 95% · 0.02% · 0.31%
-
-
+
+
@@ -2386,7 +2386,7 @@
int32_t __fastcall Math_SinImpl(int16_t angle);
int32_t __cdecl GetDebouncedInput(int32_t input);
bool __cdecl HWR_VertexBufferFull(void);
-void __cdecl Lara_State_SlideBack(struct ITEM_INFO *item, struct COLL_INFO *coll);
+void __cdecl Lara_State_SlideBack(struct ITEM_INFO *item, struct COLL_INFO *coll);
void __cdecl draw_flare_meshes(void);
void __cdecl undraw_flare_meshes(void);
sub_444990
diff --git a/docs/progress.txt b/docs/progress.txt
index 8c58b48..676c2f9 100644
--- a/docs/progress.txt
+++ b/docs/progress.txt
@@ -1506,7 +1506,7 @@ typedef enum LARA_GUN_STATE {
00428340 0000002C + void __cdecl Lara_State_Fallback(struct ITEM_INFO *item, struct COLL_INFO *coll);
00428370 00000035 + void __cdecl Lara_State_HangLeft(struct ITEM_INFO *item, struct COLL_INFO *coll);
004283B0 00000035 + void __cdecl Lara_State_HangRight(struct ITEM_INFO *item, struct COLL_INFO *coll);
-004283F0 00000018 - void __cdecl Lara_State_SlideBack(struct ITEM_INFO *item, struct COLL_INFO *coll);
+004283F0 00000018 + void __cdecl Lara_State_SlideBack(struct ITEM_INFO *item, struct COLL_INFO *coll);
00428410 00000030 - void __cdecl Lara_State_PushBlock(struct ITEM_INFO *item, struct COLL_INFO *coll);
00428440 00000027 - void __cdecl Lara_State_PPReady(struct ITEM_INFO *item, struct COLL_INFO *coll);
00428470 00000030 - void __cdecl Lara_State_Pickup(struct ITEM_INFO *item, struct COLL_INFO *coll);
diff --git a/src/game/lara/lara_state.c b/src/game/lara/lara_state.c
index 4e0988e..25a8979 100644
--- a/src/game/lara/lara_state.c
+++ b/src/game/lara/lara_state.c
@@ -516,3 +516,11 @@ void __cdecl Lara_State_HangRight(
item->goal_anim_state = LS_HANG;
}
}
+
+void __cdecl Lara_State_SlideBack(
+ struct ITEM_INFO *item, struct COLL_INFO *coll)
+{
+ if ((g_Input & IN_JUMP) && !(g_Input & IN_FORWARD)) {
+ item->goal_anim_state = LS_BACK_JUMP;
+ }
+}
diff --git a/src/game/lara/lara_state.h b/src/game/lara/lara_state.h
index bce3dcc..c0f03cc 100644
--- a/src/game/lara/lara_state.h
+++ b/src/game/lara/lara_state.h
@@ -45,3 +45,5 @@ void __cdecl Lara_State_HangLeft(
struct ITEM_INFO *item, struct COLL_INFO *coll);
void __cdecl Lara_State_HangRight(
struct ITEM_INFO *item, struct COLL_INFO *coll);
+void __cdecl Lara_State_SlideBack(
+ struct ITEM_INFO *item, struct COLL_INFO *coll);
diff --git a/src/global/funcs.h b/src/global/funcs.h
index 8786069..0ae8b4c 100644
--- a/src/global/funcs.h
+++ b/src/global/funcs.h
@@ -373,7 +373,6 @@
#define Lara_LookUpDown ((void __cdecl (*)(void))0x00427720)
#define Lara_LookLeftRight ((void __cdecl (*)(void))0x00427790)
#define Lara_ResetLook ((void __cdecl (*)(void))0x00427810)
-#define Lara_State_SlideBack ((void __cdecl (*)(struct ITEM_INFO *item, struct COLL_INFO *coll))0x004283F0)
#define Lara_State_PushBlock ((void __cdecl (*)(struct ITEM_INFO *item, struct COLL_INFO *coll))0x00428410)
#define Lara_State_PPReady ((void __cdecl (*)(struct ITEM_INFO *item, struct COLL_INFO *coll))0x00428440)
#define Lara_State_Pickup ((void __cdecl (*)(struct ITEM_INFO *item, struct COLL_INFO *coll))0x00428470)
diff --git a/src/inject_exec.c b/src/inject_exec.c
index b559614..3435934 100644
--- a/src/inject_exec.c
+++ b/src/inject_exec.c
@@ -108,6 +108,7 @@ static void Inject_Lara_State(void)
INJECT(1, 0x00428340, Lara_State_Fallback);
INJECT(1, 0x00428370, Lara_State_HangLeft);
INJECT(1, 0x004283B0, Lara_State_HangRight);
+ INJECT(1, 0x004283F0, Lara_State_SlideBack);
}
static void Inject_S_Audio_Sample(void)