unsignedintgeneration;// if 0 then EntityID points to nothing, generation >= 1
unsignedintgeneration;// if 0 then EntityID points to nothing, generation >= 1
unsignedintindex;// index into the entity arena
unsignedintindex;// index into the entity arena
@ -109,7 +109,7 @@ static bool entityids_same(EntityID a, EntityID b)
// when updated, must update serialization, AND comparison
// when updated, must update serialization, AND comparison
// function in main.c
// function in main.c
typedefstruct
typedefstructInputFrame
{
{
uint64_ttick;
uint64_ttick;
size_tid;// each input has unique, incrementing, I.D, so server doesn't double process inputs. Inputs to server should be ordered from 0-max like biggest id-smallest. This is done so if packet loss server still processes input
size_tid;// each input has unique, incrementing, I.D, so server doesn't double process inputs. Inputs to server should be ordered from 0-max like biggest id-smallest. This is done so if packet loss server still processes input
@ -117,8 +117,9 @@ typedef struct
boolseat_action;
boolseat_action;
EntityIDseat_to_inhabit;
EntityIDseat_to_inhabit;
V2hand_pos;
V2hand_pos;// local to player transationally but not rotationally unless field below is not null, then it's local to that grid
EntityIDgrid_hand_pos_local_to;// when not null, hand_pos is local to this grid. this prevents bug where
// @BeforeShip bounds check on the hand_pos so that players can't reach across the entire map
EntityIDgrid_hand_pos_local_to;// when not null, hand_pos is local to this grid. this prevents bug where at high speeds the built block is in the wrong place on the selected grid