Add Night Vision

This commit is contained in:
TheBrokenRail 2023-02-25 04:05:20 -05:00
parent 06af8c821f
commit 5273d6cdf9
3 changed files with 23 additions and 3 deletions

View File

@ -46,3 +46,4 @@ FALSE Disable Speed Bridging
FALSE Disable Creative Mode Mining Delay
FALSE Add Biome Colors To Grass
TRUE Generate Caves
FALSE Night Vision

View File

@ -390,6 +390,11 @@ static void RandomLevelSource_buildSurface_injection(unsigned char *random_level
(*LargeCaveFeature_apply)(cave_feature, random_level_source, level, chunk_x, chunk_y, chunk_data, 0);
}
// Night Vision
static float LevelSource_getBrightness_injection(__attribute__((unused)) unsigned char *level_source, __attribute__((unused)) int32_t x, __attribute__((unused)) int32_t y, __attribute__((unused)) int32_t z) {
return 1.0f;
}
// Init
static void nop() {
}
@ -506,6 +511,12 @@ void init_misc() {
overwrite_calls((void *) RandomLevelSource_buildSurface, (void *) RandomLevelSource_buildSurface_injection);
}
// Night Vision
if (feature_has("Night Vision", server_disabled)) {
overwrite((void *) Level_getBrightness, (void *) LevelSource_getBrightness_injection);
overwrite((void *) Region_getBrightness, (void *) LevelSource_getBrightness_injection);
}
// Init C++ And Logging
_init_misc_cpp();
_init_misc_logging();

View File

@ -501,6 +501,13 @@ static void *SurvivalMode = (void *) 0x1b7d8;
typedef uint32_t (*LevelData_getSpawnMobs_t)(unsigned char *level_data);
static LevelData_getSpawnMobs_t LevelData_getSpawnMobs = (LevelData_getSpawnMobs_t) 0xbabec;
// LevelSource
typedef unsigned char *(*LevelSource_getBiome_t)(unsigned char *level_source, int32_t x, int32_t z);
static uint32_t LevelSource_getBiome_vtable_offset = 0x24;
typedef float (*LevelSource_getBrightness_t)(unsigned char *level_source, int32_t x, int32_t y, int32_t z);
// Level
typedef void (*Level_saveLevelData_t)(unsigned char *level);
@ -518,12 +525,13 @@ static Level_getMaterial_t Level_getMaterial = (Level_getMaterial_t) 0xa27f8;
typedef HitResult (*Level_clip_t)(unsigned char *level, unsigned char *param_1, unsigned char *param_2, bool clip_liquids, bool param_3);
static Level_clip_t Level_clip = (Level_clip_t) 0xa3db0;
static LevelSource_getBrightness_t Level_getBrightness = (LevelSource_getBrightness_t) 0xa3b84;
static uint32_t Level_players_property_offset = 0x60; // std::vector<ServerPlayer *>
// LevelSource
// Region
typedef unsigned char *(*LevelSource_getBiome_t)(unsigned char *level_source, int32_t x, int32_t z);
static uint32_t LevelSource_getBiome_vtable_offset = 0x24;
static LevelSource_getBrightness_t Region_getBrightness = (LevelSource_getBrightness_t) 0xadaa8;
// Material