Bug Fixes
This commit is contained in:
parent
e1ddc78d31
commit
1eb6a1b96e
@ -41,6 +41,32 @@ static void handle_input_injection(unsigned char *param_1, unsigned char *param_
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
typedef void (*tickItemDrop_t)(unsigned char *);
|
||||||
|
static tickItemDrop_t tickItemDrop = (tickItemDrop_t) 0x27778;
|
||||||
|
static void *tickItemDrop_original = NULL;
|
||||||
|
|
||||||
|
#include <SDL/SDL_events.h>
|
||||||
|
|
||||||
|
static void tickItemDrop_injection(unsigned char *this) {
|
||||||
|
if (SDL_ShowCursor(SDL_QUERY) == SDL_ENABLE) {
|
||||||
|
revert_overwrite((void *) tickItemDrop, tickItemDrop_original);
|
||||||
|
(*tickItemDrop)(this);
|
||||||
|
revert_overwrite((void *) tickItemDrop, tickItemDrop_original);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
typedef void (*handleClick_t)(unsigned char *, unsigned char *, unsigned char *, unsigned char *);
|
||||||
|
static handleClick_t handleClick = (handleClick_t) 0x2599c;
|
||||||
|
static void *handleClick_original = NULL;
|
||||||
|
|
||||||
|
static void handleClick_injection(unsigned char *this, unsigned char *param_2, unsigned char *param_3, unsigned char *param_4) {
|
||||||
|
if (SDL_ShowCursor(SDL_QUERY) == SDL_ENABLE) {
|
||||||
|
revert_overwrite((void *) handleClick, handleClick_original);
|
||||||
|
(*handleClick)(this, param_2, param_3, param_4);
|
||||||
|
revert_overwrite((void *) handleClick, handleClick_original);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static int has_feature(const char *name) {
|
static int has_feature(const char *name) {
|
||||||
char *env = getenv("FEATURES");
|
char *env = getenv("FEATURES");
|
||||||
char *features = strdup(env != NULL ? env : "");
|
char *features = strdup(env != NULL ? env : "");
|
||||||
@ -82,6 +108,11 @@ __attribute__((constructor)) static void init() {
|
|||||||
overwrite((void *) 0xbabdc, get_game_type);
|
overwrite((void *) 0xbabdc, get_game_type);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Disable Item Dropping When Cursor Is Hidden
|
||||||
|
tickItemDrop_original = overwrite((void *) tickItemDrop, tickItemDrop_injection);
|
||||||
|
// Disable Opening Inventory Using The Cursor When Cursor Is Hidden
|
||||||
|
handleClick_original = overwrite((void *) handleClick, handleClick_injection);
|
||||||
|
|
||||||
if (has_feature("Fix Bow & Arrow")) {
|
if (has_feature("Fix Bow & Arrow")) {
|
||||||
// Fix Bow
|
// Fix Bow
|
||||||
handle_input_original = overwrite((void *) handle_input, handle_input_injection);
|
handle_input_original = overwrite((void *) handle_input, handle_input_injection);
|
||||||
|
Loading…
Reference in New Issue
Block a user