| 1849 | } |
| 1850 | |
| 1851 | static BlockID BlockDefs_DefineBlockCommonStart(cc_uint8** ptr, cc_bool uniqueSideTexs) { |
| 1852 | cc_string name; |
| 1853 | BlockID block; |
| 1854 | cc_bool oldBlocksLight; |
| 1855 | cc_uint8 oldBrightness; |
| 1856 | float speedLog2; |
| 1857 | cc_uint8 sound; |
| 1858 | cc_uint8* data = *ptr; |
| 1859 | |
| 1860 | ReadBlock(data, block); |
| 1861 | oldBlocksLight = Blocks.BlocksLight[block]; |
| 1862 | oldBrightness = Blocks.Brightness[block]; |
| 1863 | Block_ResetProps(block); |
| 1864 | |
| 1865 | name = UNSAFE_GetString(data); data += STRING_SIZE; |
| 1866 | Block_SetName(block, &name); |
| 1867 | Blocks.Collide[block] = *data++; |
| 1868 | |
| 1869 | speedLog2 = (*data++ - 128) / 64.0f; |
| 1870 | Blocks.SpeedMultiplier[block] = (float)Math_Exp2(speedLog2); |
| 1871 | |
| 1872 | Block_Tex(block, FACE_YMAX) = BlockDefs_Tex(&data); |
| 1873 | if (uniqueSideTexs) { |
| 1874 | Block_Tex(block, FACE_XMIN) = BlockDefs_Tex(&data); |
| 1875 | Block_Tex(block, FACE_XMAX) = BlockDefs_Tex(&data); |
| 1876 | Block_Tex(block, FACE_ZMIN) = BlockDefs_Tex(&data); |
| 1877 | Block_Tex(block, FACE_ZMAX) = BlockDefs_Tex(&data); |
| 1878 | } else { |
| 1879 | Block_SetSide(BlockDefs_Tex(&data), block); |
| 1880 | } |
| 1881 | Block_Tex(block, FACE_YMIN) = BlockDefs_Tex(&data); |
| 1882 | |
| 1883 | Blocks.BlocksLight[block] = *data++ == 0; |
| 1884 | BlockDefs_OnBlocksLightPropertyUpdated(block, oldBlocksLight); |
| 1885 | |
| 1886 | sound = *data++; |
| 1887 | Blocks.StepSounds[block] = sound; |
| 1888 | Blocks.DigSounds[block] = sound; |
| 1889 | if (sound == SOUND_GLASS) Blocks.StepSounds[block] = SOUND_STONE; |
| 1890 | |
| 1891 | Blocks.Brightness[block] = Block_ReadBrightness(*data++); |
| 1892 | BlockDefs_OnBrightnessPropertyUpdated(block, oldBrightness); |
| 1893 | *ptr = data; |
| 1894 | return block; |
| 1895 | } |
| 1896 | |
| 1897 | static void BlockDefs_DefineBlockCommonEnd(cc_uint8* data, cc_uint8 shape, BlockID block) { |
| 1898 | cc_uint8 draw = data[0]; |
no test coverage detected