From b4f6cd5dc161f89f7ca14f2e5e0654f977971fdb Mon Sep 17 00:00:00 2001 From: LaG1924 <12997935+LaG1924@users.noreply.github.com> Date: Thu, 9 Aug 2018 07:05:19 +0500 Subject: Refactored Block --- src/Block.hpp | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) (limited to 'src/Block.hpp') diff --git a/src/Block.hpp b/src/Block.hpp index c922adf..fa8b51a 100644 --- a/src/Block.hpp +++ b/src/Block.hpp @@ -1,19 +1,7 @@ #pragma once -#include #include - -struct Block { - Block(); - Block(unsigned short id, unsigned char state, - unsigned char light, unsigned char sky); - ~Block(); - - unsigned short id : 13; - unsigned char state : 4; - unsigned char light : 4; - unsigned char sky : 4; -}; +#include struct BlockId { unsigned short id : 13; @@ -29,9 +17,15 @@ enum BlockFacing { East }; -bool operator==(const BlockId& lhs, const BlockId &rhs); +inline bool operator==(const BlockId& lhs, const BlockId &rhs) { + return (lhs.id == rhs.id) && (lhs.state == rhs.state); +} -bool operator<(const BlockId& lhs, const BlockId &rhs); +inline bool operator<(const BlockId& lhs, const BlockId &rhs) { + if (lhs.id != rhs.id) + return lhs.id < rhs.id; + return lhs.state < rhs.state; +} namespace std { template <> -- cgit v1.2.3