24 #include <interfaces/GameStateInterface.h>
26 #include <core/exceptions/software.h>
78 GameStateInterface::GameStateInterface() : Interface()
80 data_size =
sizeof(GameStateInterface_data_t);
82 data = (GameStateInterface_data_t *)
data_ptr;
85 enum_map_if_gamestate_team_t[(int)
TEAM_NONE] =
"TEAM_NONE";
86 enum_map_if_gamestate_team_t[(int)
TEAM_CYAN] =
"TEAM_CYAN";
87 enum_map_if_gamestate_team_t[(int)
TEAM_MAGENTA] =
"TEAM_MAGENTA";
88 enum_map_if_gamestate_team_t[(int)
TEAM_BOTH] =
"TEAM_BOTH";
89 enum_map_if_gamestate_goalcolor_t[(int)
GOAL_BLUE] =
"GOAL_BLUE";
90 enum_map_if_gamestate_goalcolor_t[(int)
GOAL_YELLOW] =
"GOAL_YELLOW";
91 enum_map_if_gamestate_half_t[(int)
HALF_FIRST] =
"HALF_FIRST";
92 enum_map_if_gamestate_half_t[(int)
HALF_SECOND] =
"HALF_SECOND";
93 enum_map_if_gamestate_role_t[(int)ROLE_GOALIE] =
"ROLE_GOALIE";
94 enum_map_if_gamestate_role_t[(int)ROLE_DEFENDER] =
"ROLE_DEFENDER";
95 enum_map_if_gamestate_role_t[(int)ROLE_MID_LEFT] =
"ROLE_MID_LEFT";
96 enum_map_if_gamestate_role_t[(int)ROLE_MID_RIGHT] =
"ROLE_MID_RIGHT";
97 enum_map_if_gamestate_role_t[(int)ROLE_ATTACKER] =
"ROLE_ATTACKER";
99 add_fieldinfo(
IFT_ENUM,
"state_team", 1, &data->state_team,
"if_gamestate_team_t", &enum_map_if_gamestate_team_t);
100 add_fieldinfo(
IFT_ENUM,
"our_team", 1, &data->our_team,
"if_gamestate_team_t", &enum_map_if_gamestate_team_t);
101 add_fieldinfo(
IFT_ENUM,
"our_goal_color", 1, &data->our_goal_color,
"if_gamestate_goalcolor_t", &enum_map_if_gamestate_goalcolor_t);
102 add_fieldinfo(
IFT_ENUM,
"half", 1, &data->half,
"if_gamestate_half_t", &enum_map_if_gamestate_half_t);
104 add_fieldinfo(
IFT_ENUM,
"role", 1, &data->role,
"if_gamestate_role_t", &enum_map_if_gamestate_role_t);
110 unsigned char tmp_hash[] = {0xf5, 0x19, 0x26, 0x77, 0x6, 0x54, 0x44, 0xb4, 0xe1, 0x61, 0x40, 0x2a, 0x65, 0xfc, 0xaf, 0xa1};
115 GameStateInterface::~GameStateInterface()
131 default:
return "UNKNOWN";
144 default:
return "UNKNOWN";
157 default:
return "UNKNOWN";
168 case ROLE_GOALIE:
return "ROLE_GOALIE";
169 case ROLE_DEFENDER:
return "ROLE_DEFENDER";
170 case ROLE_MID_LEFT:
return "ROLE_MID_LEFT";
171 case ROLE_MID_RIGHT:
return "ROLE_MID_RIGHT";
172 case ROLE_ATTACKER:
return "ROLE_ATTACKER";
173 default:
return "UNKNOWN";
184 return data->game_state;
334 return data->kickoff;
394 return data->score_cyan;
424 return data->score_magenta;
451 if ( strncmp(
"SetTeamColorMessage",
type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
453 }
else if ( strncmp(
"SetKickoffMessage",
type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
455 }
else if ( strncmp(
"SetStateTeamMessage",
type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
459 "message type for this interface type.",
type);
475 memcpy(data, oi->data,
sizeof(GameStateInterface_data_t));
481 if (strcmp(enumtype,
"if_gamestate_team_t") == 0) {
484 if (strcmp(enumtype,
"if_gamestate_goalcolor_t") == 0) {
487 if (strcmp(enumtype,
"if_gamestate_half_t") == 0) {
490 if (strcmp(enumtype,
"if_gamestate_role_t") == 0) {
509 data_size =
sizeof(SetTeamColorMessage_data_t);
512 data = (SetTeamColorMessage_data_t *)
data_ptr;
514 data->our_team = ini_our_team;
515 enum_map_if_gamestate_team_t[(int)
TEAM_NONE] =
"TEAM_NONE";
516 enum_map_if_gamestate_team_t[(int)
TEAM_CYAN] =
"TEAM_CYAN";
517 enum_map_if_gamestate_team_t[(int)
TEAM_MAGENTA] =
"TEAM_MAGENTA";
518 enum_map_if_gamestate_team_t[(int)
TEAM_BOTH] =
"TEAM_BOTH";
519 enum_map_if_gamestate_goalcolor_t[(int)
GOAL_BLUE] =
"GOAL_BLUE";
520 enum_map_if_gamestate_goalcolor_t[(int)
GOAL_YELLOW] =
"GOAL_YELLOW";
521 enum_map_if_gamestate_half_t[(int)
HALF_FIRST] =
"HALF_FIRST";
522 enum_map_if_gamestate_half_t[(int)
HALF_SECOND] =
"HALF_SECOND";
523 enum_map_if_gamestate_role_t[(int)
ROLE_GOALIE] =
"ROLE_GOALIE";
524 enum_map_if_gamestate_role_t[(int)
ROLE_DEFENDER] =
"ROLE_DEFENDER";
525 enum_map_if_gamestate_role_t[(int)
ROLE_MID_LEFT] =
"ROLE_MID_LEFT";
526 enum_map_if_gamestate_role_t[(int)
ROLE_MID_RIGHT] =
"ROLE_MID_RIGHT";
527 enum_map_if_gamestate_role_t[(int)
ROLE_ATTACKER] =
"ROLE_ATTACKER";
528 add_fieldinfo(
IFT_ENUM,
"our_team", 1, &data->our_team,
"if_gamestate_team_t", &enum_map_if_gamestate_team_t);
533 data_size =
sizeof(SetTeamColorMessage_data_t);
536 data = (SetTeamColorMessage_data_t *)
data_ptr;
538 enum_map_if_gamestate_team_t[(int)
TEAM_NONE] =
"TEAM_NONE";
539 enum_map_if_gamestate_team_t[(int)
TEAM_CYAN] =
"TEAM_CYAN";
540 enum_map_if_gamestate_team_t[(int)
TEAM_MAGENTA] =
"TEAM_MAGENTA";
541 enum_map_if_gamestate_team_t[(int)
TEAM_BOTH] =
"TEAM_BOTH";
542 enum_map_if_gamestate_goalcolor_t[(int)
GOAL_BLUE] =
"GOAL_BLUE";
543 enum_map_if_gamestate_goalcolor_t[(int)
GOAL_YELLOW] =
"GOAL_YELLOW";
544 enum_map_if_gamestate_half_t[(int)
HALF_FIRST] =
"HALF_FIRST";
545 enum_map_if_gamestate_half_t[(int)
HALF_SECOND] =
"HALF_SECOND";
546 enum_map_if_gamestate_role_t[(int)
ROLE_GOALIE] =
"ROLE_GOALIE";
547 enum_map_if_gamestate_role_t[(int)
ROLE_DEFENDER] =
"ROLE_DEFENDER";
548 enum_map_if_gamestate_role_t[(int)
ROLE_MID_LEFT] =
"ROLE_MID_LEFT";
549 enum_map_if_gamestate_role_t[(int)
ROLE_MID_RIGHT] =
"ROLE_MID_RIGHT";
550 enum_map_if_gamestate_role_t[(int)
ROLE_ATTACKER] =
"ROLE_ATTACKER";
551 add_fieldinfo(
IFT_ENUM,
"our_team", 1, &data->our_team,
"if_gamestate_team_t", &enum_map_if_gamestate_team_t);
568 data = (SetTeamColorMessage_data_t *)
data_ptr;
625 data_size =
sizeof(SetKickoffMessage_data_t);
628 data = (SetKickoffMessage_data_t *)
data_ptr;
630 data->kickoff = ini_kickoff;
631 enum_map_if_gamestate_team_t[(int)
TEAM_NONE] =
"TEAM_NONE";
632 enum_map_if_gamestate_team_t[(int)
TEAM_CYAN] =
"TEAM_CYAN";
633 enum_map_if_gamestate_team_t[(int)
TEAM_MAGENTA] =
"TEAM_MAGENTA";
634 enum_map_if_gamestate_team_t[(int)
TEAM_BOTH] =
"TEAM_BOTH";
635 enum_map_if_gamestate_goalcolor_t[(int)
GOAL_BLUE] =
"GOAL_BLUE";
636 enum_map_if_gamestate_goalcolor_t[(int)
GOAL_YELLOW] =
"GOAL_YELLOW";
637 enum_map_if_gamestate_half_t[(int)
HALF_FIRST] =
"HALF_FIRST";
638 enum_map_if_gamestate_half_t[(int)
HALF_SECOND] =
"HALF_SECOND";
639 enum_map_if_gamestate_role_t[(int)
ROLE_GOALIE] =
"ROLE_GOALIE";
640 enum_map_if_gamestate_role_t[(int)
ROLE_DEFENDER] =
"ROLE_DEFENDER";
641 enum_map_if_gamestate_role_t[(int)
ROLE_MID_LEFT] =
"ROLE_MID_LEFT";
642 enum_map_if_gamestate_role_t[(int)
ROLE_MID_RIGHT] =
"ROLE_MID_RIGHT";
643 enum_map_if_gamestate_role_t[(int)
ROLE_ATTACKER] =
"ROLE_ATTACKER";
649 data_size =
sizeof(SetKickoffMessage_data_t);
652 data = (SetKickoffMessage_data_t *)
data_ptr;
654 enum_map_if_gamestate_team_t[(int)
TEAM_NONE] =
"TEAM_NONE";
655 enum_map_if_gamestate_team_t[(int)
TEAM_CYAN] =
"TEAM_CYAN";
656 enum_map_if_gamestate_team_t[(int)
TEAM_MAGENTA] =
"TEAM_MAGENTA";
657 enum_map_if_gamestate_team_t[(int)
TEAM_BOTH] =
"TEAM_BOTH";
658 enum_map_if_gamestate_goalcolor_t[(int)
GOAL_BLUE] =
"GOAL_BLUE";
659 enum_map_if_gamestate_goalcolor_t[(int)
GOAL_YELLOW] =
"GOAL_YELLOW";
660 enum_map_if_gamestate_half_t[(int)
HALF_FIRST] =
"HALF_FIRST";
661 enum_map_if_gamestate_half_t[(int)
HALF_SECOND] =
"HALF_SECOND";
662 enum_map_if_gamestate_role_t[(int)
ROLE_GOALIE] =
"ROLE_GOALIE";
663 enum_map_if_gamestate_role_t[(int)
ROLE_DEFENDER] =
"ROLE_DEFENDER";
664 enum_map_if_gamestate_role_t[(int)
ROLE_MID_LEFT] =
"ROLE_MID_LEFT";
665 enum_map_if_gamestate_role_t[(int)
ROLE_MID_RIGHT] =
"ROLE_MID_RIGHT";
666 enum_map_if_gamestate_role_t[(int)
ROLE_ATTACKER] =
"ROLE_ATTACKER";
684 data = (SetKickoffMessage_data_t *)
data_ptr;
696 return data->kickoff;
741 data_size =
sizeof(SetStateTeamMessage_data_t);
744 data = (SetStateTeamMessage_data_t *)
data_ptr;
746 data->state_team = ini_state_team;
747 enum_map_if_gamestate_team_t[(int)
TEAM_NONE] =
"TEAM_NONE";
748 enum_map_if_gamestate_team_t[(int)
TEAM_CYAN] =
"TEAM_CYAN";
749 enum_map_if_gamestate_team_t[(int)
TEAM_MAGENTA] =
"TEAM_MAGENTA";
750 enum_map_if_gamestate_team_t[(int)
TEAM_BOTH] =
"TEAM_BOTH";
751 enum_map_if_gamestate_goalcolor_t[(int)
GOAL_BLUE] =
"GOAL_BLUE";
752 enum_map_if_gamestate_goalcolor_t[(int)
GOAL_YELLOW] =
"GOAL_YELLOW";
753 enum_map_if_gamestate_half_t[(int)
HALF_FIRST] =
"HALF_FIRST";
754 enum_map_if_gamestate_half_t[(int)
HALF_SECOND] =
"HALF_SECOND";
755 enum_map_if_gamestate_role_t[(int)
ROLE_GOALIE] =
"ROLE_GOALIE";
756 enum_map_if_gamestate_role_t[(int)
ROLE_DEFENDER] =
"ROLE_DEFENDER";
757 enum_map_if_gamestate_role_t[(int)
ROLE_MID_LEFT] =
"ROLE_MID_LEFT";
758 enum_map_if_gamestate_role_t[(int)
ROLE_MID_RIGHT] =
"ROLE_MID_RIGHT";
759 enum_map_if_gamestate_role_t[(int)
ROLE_ATTACKER] =
"ROLE_ATTACKER";
760 add_fieldinfo(
IFT_ENUM,
"state_team", 1, &data->state_team,
"if_gamestate_team_t", &enum_map_if_gamestate_team_t);
765 data_size =
sizeof(SetStateTeamMessage_data_t);
768 data = (SetStateTeamMessage_data_t *)
data_ptr;
770 enum_map_if_gamestate_team_t[(int)
TEAM_NONE] =
"TEAM_NONE";
771 enum_map_if_gamestate_team_t[(int)
TEAM_CYAN] =
"TEAM_CYAN";
772 enum_map_if_gamestate_team_t[(int)
TEAM_MAGENTA] =
"TEAM_MAGENTA";
773 enum_map_if_gamestate_team_t[(int)
TEAM_BOTH] =
"TEAM_BOTH";
774 enum_map_if_gamestate_goalcolor_t[(int)
GOAL_BLUE] =
"GOAL_BLUE";
775 enum_map_if_gamestate_goalcolor_t[(int)
GOAL_YELLOW] =
"GOAL_YELLOW";
776 enum_map_if_gamestate_half_t[(int)
HALF_FIRST] =
"HALF_FIRST";
777 enum_map_if_gamestate_half_t[(int)
HALF_SECOND] =
"HALF_SECOND";
778 enum_map_if_gamestate_role_t[(int)
ROLE_GOALIE] =
"ROLE_GOALIE";
779 enum_map_if_gamestate_role_t[(int)
ROLE_DEFENDER] =
"ROLE_DEFENDER";
780 enum_map_if_gamestate_role_t[(int)
ROLE_MID_LEFT] =
"ROLE_MID_LEFT";
781 enum_map_if_gamestate_role_t[(int)
ROLE_MID_RIGHT] =
"ROLE_MID_RIGHT";
782 enum_map_if_gamestate_role_t[(int)
ROLE_ATTACKER] =
"ROLE_ATTACKER";
783 add_fieldinfo(
IFT_ENUM,
"state_team", 1, &data->state_team,
"if_gamestate_team_t", &enum_map_if_gamestate_team_t);
800 data = (SetStateTeamMessage_data_t *)
data_ptr;