I just sort of duplicated your stuff, but in table form:
//====================================
//set MJS RF config Gait Test Values
// and Mucked up by KJE ;)
//====================================
typedef struct {
uint8_t id;
LSS_ConfigGyre gyre;
int16_t offset;
int16_t max_speed;
} servo_info_t;
typedef struct {
const char *leg_name;
servo_info_t coxa;
servo_info_t femur;
servo_info_t tibia;
} leg_info_t;
leg_info_t legs[] = {
{"Left Front", {LF_COXA, LSS_GyreCounterClockwise, 0, 600}, {LF_FEMUR, LSS_GyreClockwise, -104, 600}, {LF_TIBIA, LSS_GyreClockwise, -137, 600}},
{"Left Middle", {LM_COXA, LSS_GyreCounterClockwise, 0, 600}, {LM_FEMUR, LSS_GyreClockwise, -104, 600}, {LM_TIBIA, LSS_GyreClockwise, -137, 600}},
{"Left Rear", {LF_COXA, LSS_GyreCounterClockwise, 0, 600}, {LR_FEMUR, LSS_GyreClockwise, -104, 600}, {LR_TIBIA, LSS_GyreClockwise, -137, 600}},
{"Right Front", {RF_COXA, LSS_GyreCounterClockwise, 0, 600}, {RF_FEMUR, LSS_GyreCounterClockwise, -104, 600}, {RF_TIBIA, LSS_GyreCounterClockwise, -137, 600}},
{"Right Middle", {RM_COXA, LSS_GyreCounterClockwise, 0, 600}, {RM_FEMUR, LSS_GyreCounterClockwise, -104, 600}, {RM_TIBIA, LSS_GyreCounterClockwise, -137, 600}},
{"Right Rear", {RF_COXA, LSS_GyreCounterClockwise, 0, 600}, {RR_FEMUR, LSS_GyreCounterClockwise, -104, 600}, {RR_TIBIA, LSS_GyreCounterClockwise, -137, 600}}
};
#define COUNT_LEGS (sizeof(legs)/sizeof(legs[0]))
#define RF_COXA_MaxSpeed 600
#define RF_COXA_Gyre LSS_GyreCounterClockwise
#define RF_COXA_Offset 0
#define RF_FEMUR_MaxSpeed 600
#define RF_FEMUR_Gyre LSS_GyreCounterClockwise
#define RF_FEMUR_Offset -104
#define RF_TIBIA_MaxSpeed 600
#define RF_TIBIA_Gyre LSS_GyreCounterClockwise
#define RF_TIBIA_Offset -137
//Time delays for Gait MoveT commands
uint16_t delay1 = 450;
uint16_t servo_move_time = 250;
And then changed your two functions ‘c’ and ‘i’ to do all of the legs.