From c60fb51fae244dd28bbaa332d6d6049b9fd7739f Mon Sep 17 00:00:00 2001 From: TheBrokenRail Date: Tue, 24 Aug 2021 17:21:38 -0400 Subject: [PATCH] Move ServerLevel To minecraft.h --- libreborn/include/libreborn/minecraft.h | 3 +++ mods/src/game-mode/game-mode.c | 5 ++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/libreborn/include/libreborn/minecraft.h b/libreborn/include/libreborn/minecraft.h index 18c932b..4163a75 100644 --- a/libreborn/include/libreborn/minecraft.h +++ b/libreborn/include/libreborn/minecraft.h @@ -150,6 +150,9 @@ static uint32_t CommandServer_minecraft_property_offset = 0x18; // Minecraft * #define SERVER_LEVEL_SIZE 0xb80 +typedef unsigned char *(*ServerLevel_t)(unsigned char *server_level, unsigned char *storage, unsigned char *name, struct LevelSettings *settings, int param_4, unsigned char *dimension); +static ServerLevel_t ServerLevel = (ServerLevel_t) 0x7692c; + // Packet typedef void (*Packet_read_t)(unsigned char *packet, unsigned char *bit_stream); diff --git a/mods/src/game-mode/game-mode.c b/mods/src/game-mode/game-mode.c index 462544f..833c9ad 100644 --- a/mods/src/game-mode/game-mode.c +++ b/mods/src/game-mode/game-mode.c @@ -43,12 +43,11 @@ void init_game_mode() { overwrite_calls((void *) Minecraft_setIsCreativeMode, (void *) Minecraft_setIsCreativeMode_injection); // Replace CreatorLevel With ServerLevel (This Fixes Beds And Mob Spawning) - unsigned char level_patch[4] = {0x68, 0x7e, 0x01, 0xeb}; // "bl 0x7692c" - patch((void *) 0x16f84, level_patch); + overwrite_call((void *) 0x16f84, (void *) ServerLevel); // Allocate Correct Size For ServerLevel uint32_t level_size = SERVER_LEVEL_SIZE; - patch((void *) 0x17004, (unsigned char *) &level_size); + patch_address((void *) 0x17004, (void *) level_size); // Init C++ _init_game_mode_cpp();