From 49b540ba2ef442f33e713450d2f9934bef6318db Mon Sep 17 00:00:00 2001 From: TheBrokenRail Date: Fri, 2 Oct 2020 23:25:27 -0400 Subject: [PATCH] Fancy Graphics --- debian/usr/bin/minecraft-pi | 2 +- mods/src/extra.c | 19 +++++++++++++++---- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/debian/usr/bin/minecraft-pi b/debian/usr/bin/minecraft-pi index 700b365..20b1592 100755 --- a/debian/usr/bin/minecraft-pi +++ b/debian/usr/bin/minecraft-pi @@ -4,7 +4,7 @@ set -e # Ensure Features Are Selected if [ -z "${MCPI_SUBSHELL}" ]; then - MCPI_FEATURES="$(zenity --class minecraft-pi --list --checklist --column 'Enabled' --column 'Feature' FALSE 'Touch GUI' FALSE 'Survival Mode' FALSE 'Fix Bow & Arrow' FALSE 'Fix Attacking' FALSE 'Mob Spawning' FALSE 'Show Clouds' FALSE 'Disable Autojump By Default')" + MCPI_FEATURES="$(zenity --class minecraft-pi --list --checklist --column 'Enabled' --column 'Feature' FALSE 'Touch GUI' FALSE 'Survival Mode' FALSE 'Fix Bow & Arrow' FALSE 'Fix Attacking' FALSE 'Mob Spawning' FALSE 'Fancy Graphics' FALSE 'Disable Autojump By Default')" MCPI_USERNAME="$(zenity --class minecraft-pi --entry --text 'Minecraft Username:' --entry-text 'StevePi')" fi export MCPI_FEATURES diff --git a/mods/src/extra.c b/mods/src/extra.c index 0b4955a..23fbc15 100644 --- a/mods/src/extra.c +++ b/mods/src/extra.c @@ -125,6 +125,18 @@ static char *get_username() { return username; } +typedef void (*minecraft_init_t)(unsigned char *); +static minecraft_init_t minecraft_init = (minecraft_init_t) 0x1700c; +static void *minecraft_init_original = NULL; + +static void minecraft_init_injection(unsigned char *this) { + revert_overwrite((void *) minecraft_init, minecraft_init_original); + (*minecraft_init)(this); + revert_overwrite((void *) minecraft_init, minecraft_init_original); + + *(this + 83) = 1; +} + __attribute__((constructor)) static void init() { if (has_feature("Touch GUI")) { // Use Touch UI @@ -172,10 +184,9 @@ __attribute__((constructor)) static void init() { // Implement AppPlatform::readAssetFile So Translations Work overwrite((void *) 0x12b10, readAssetFile); - if (has_feature("Show Clouds")) { - // Show Clouds - unsigned char patch_data_8[4] = {0x01, 0x30, 0xa0, 0xe3}; - patch((void *) 0x49fcc, patch_data_8); + if (has_feature("Fancy Graphics")) { + // Enable Fancy Graphics + minecraft_init_original = overwrite((void *) minecraft_init, minecraft_init_injection); } // Allow Connecting To Non-Pi Servers