Compare commits

...

2 Commits

Author SHA1 Message Date
9ad6cc3906 Add Tile Symbols
All checks were successful
minecraft-pi-reborn/pipeline/head This commit looks good
2021-10-28 19:21:07 -04:00
12de038f37 Improve Patch Comment 2021-10-27 18:14:30 -04:00
3 changed files with 69 additions and 27 deletions

View File

@ -76,6 +76,10 @@ static SDLKey glfw_key_to_sdl_key(int key) {
return SDLK_7;
case GLFW_KEY_8:
return SDLK_8;
case GLFW_KEY_9:
return SDLK_9;
case GLFW_KEY_0:
return SDLK_0;
// UI Control
case GLFW_KEY_ESCAPE:
return SDLK_ESCAPE;

View File

@ -107,6 +107,8 @@ void init_options() {
}
// Display Nametags By Default
if (feature_has("Display Nametags By Default", 0)) {
// r6 = 0x1
// r5 = 0x0
unsigned char display_nametags_patch[4] = {0x1d, 0x60, 0xc0, 0xe5}; // "strb r6, [r0, #0x1d]"
patch((void *) 0xa6628, display_nametags_patch);
}

View File

@ -19,38 +19,38 @@ static char **default_path = (char **) 0xe264; // /.minecraft/
static char **default_username = (char **) 0x18fd4; // StevePi
static char **minecraft_pi_version = (char **) 0x39d94; // v0.1.1 alpha
static unsigned char **Item_flintAndSteel = (unsigned char **) 0x17ba70;
static unsigned char **Item_snowball = (unsigned char **) 0x17bbb0;
static unsigned char **Item_shears = (unsigned char **) 0x17bbf0;
static unsigned char **Item_egg = (unsigned char **) 0x17bbd0;
static unsigned char **Item_dye_powder = (unsigned char **) 0x17bbe0;
static unsigned char **Item_camera = (unsigned char **) 0x17bc14;
static unsigned char **Material_stone = (unsigned char **) 0x180a9c; // Material
static unsigned char **Tile_water = (unsigned char **) 0x181b3c;
static unsigned char **Tile_lava = (unsigned char **) 0x181cc8;
static unsigned char **Tile_calmWater = (unsigned char **) 0x181b40;
static unsigned char **Tile_calmLava = (unsigned char **) 0x181ccc;
static unsigned char **Tile_glowingObsidian = (unsigned char **) 0x181dcc;
static unsigned char **Tile_web = (unsigned char **) 0x181d08;
static unsigned char **Tile_topSnow = (unsigned char **) 0x181b30;
static unsigned char **Tile_ice = (unsigned char **) 0x181d80;
static unsigned char **Tile_invisible_bedrock = (unsigned char **) 0x181d94;
static unsigned char **Tile_netherReactor = (unsigned char **) 0x181dd0;
static unsigned char **Tile_info_updateGame1 = (unsigned char **) 0x181c68;
static unsigned char **Tile_info_updateGame2 = (unsigned char **) 0x181c6c;
static unsigned char **Tile_bedrock = (unsigned char **) 0x181cc4;
static unsigned char *SOUND_STONE = (unsigned char *) 0x181c80; // Tile::SoundType
static unsigned char **Tile_leaves = (unsigned char **) 0x18120c;
static unsigned char **Tile_leaves_carried = (unsigned char **) 0x181dd8;
static unsigned char **Tile_grass = (unsigned char **) 0x181b14;
static unsigned char **Tile_grass_carried = (unsigned char **) 0x181dd4;
static unsigned char **Item_flintAndSteel = (unsigned char **) 0x17ba70; // Item
static unsigned char **Item_snowball = (unsigned char **) 0x17bbb0; // Item
static unsigned char **Item_shears = (unsigned char **) 0x17bbf0; // Item
static unsigned char **Item_egg = (unsigned char **) 0x17bbd0; // Item
static unsigned char **Item_dye_powder = (unsigned char **) 0x17bbe0; // Item
static unsigned char **Item_camera = (unsigned char **) 0x17bc14; // Item
static unsigned char **Tile_water = (unsigned char **) 0x181b3c; // Tile
static unsigned char **Tile_lava = (unsigned char **) 0x181cc8; // Tile
static unsigned char **Tile_calmWater = (unsigned char **) 0x181b40; // Tile
static unsigned char **Tile_calmLava = (unsigned char **) 0x181ccc; // Tile
static unsigned char **Tile_glowingObsidian = (unsigned char **) 0x181dcc; // Tile
static unsigned char **Tile_web = (unsigned char **) 0x181d08; // Tile
static unsigned char **Tile_topSnow = (unsigned char **) 0x181b30; // Tile
static unsigned char **Tile_ice = (unsigned char **) 0x181d80; // Tile
static unsigned char **Tile_invisible_bedrock = (unsigned char **) 0x181d94; // Tile
static unsigned char **Tile_netherReactor = (unsigned char **) 0x181dd0; // Tile
static unsigned char **Tile_info_updateGame1 = (unsigned char **) 0x181c68; // Tile
static unsigned char **Tile_info_updateGame2 = (unsigned char **) 0x181c6c; // Tile
static unsigned char **Tile_bedrock = (unsigned char **) 0x181cc4; // Tile
static unsigned char **Tile_leaves = (unsigned char **) 0x18120c; // Tile
static unsigned char **Tile_leaves_carried = (unsigned char **) 0x181dd8; // Tile
static unsigned char **Tile_grass = (unsigned char **) 0x181b14; // Tile
static unsigned char **Tile_grass_carried = (unsigned char **) 0x181dd4; // Tile
static float *InvGuiScale = (float *) 0x135d98;
// Tile
static uint32_t Tile_id_property_offset = 0x8;
// Structures
struct AABB {
@ -74,6 +74,37 @@ struct RakNet_SystemAddress {
unsigned char data[20];
};
// Tile
typedef void (*Tile_initTiles_t)();
static Tile_initTiles_t Tile_initTiles = (Tile_initTiles_t) 0xc358c;
#define TILE_SIZE 0x5c
#define TILE_VTABLE_SIZE 0x104
static unsigned char *Tile_vtable = (unsigned char *) 0x115670;
typedef unsigned char *(*Tile_t)(unsigned char *tile, int32_t id, int32_t texture, const void *material);
static Tile_t Tile = (Tile_t) 0xc33a0;
typedef unsigned char *(*Tile_init_t)(unsigned char *tile);
static Tile_init_t Tile_init = (Tile_init_t) 0xc34dc;
typedef unsigned char *(*Tile_setDestroyTime_t)(unsigned char *tile, float destroy_time);
static uint32_t Tile_setDestroyTime_vtable_offset = 0xf8;
typedef unsigned char *(*Tile_setExplodeable_t)(unsigned char *tile, float explodeable);
static uint32_t Tile_setExplodeable_vtable_offset = 0xf4;
typedef unsigned char *(*Tile_setSoundType_t)(unsigned char *tile, unsigned char *sound_type);
static uint32_t Tile_setSoundType_vtable_offset = 0xe8;
typedef int32_t (*Tile_use_t)(unsigned char *tile, unsigned char *level, int32_t x, int32_t y, int32_t z, unsigned char *player);
static uint32_t Tile_use_vtable_offset = 0x98;
static uint32_t Tile_id_property_offset = 0x8; // int32_t
static uint32_t Tile_category_property_offset = 0x3c; // int32_t
// GameMode
typedef void (*GameMode_releaseUsingItem_t)(unsigned char *game_mode, unsigned char *player);
@ -579,6 +610,11 @@ struct ConnectedClient {
long time;
};
// Tile
typedef unsigned char *(*Tile_setDescriptionId_t)(unsigned char *tile, std::string const& description_id);
static uint32_t Tile_setDescriptionId_vtable_offset = 0xe0;
// AppPlatform
typedef void (*AppPlatform_saveScreenshot_t)(unsigned char *app_platform, std::string const& path, int32_t width, int32_t height);