diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/main.c | 123 |
1 files changed, 100 insertions, 23 deletions
@@ -710,28 +710,6 @@ int main(void) { | |||
710 | OBJ_ATTR_1(btn_a.id) = btn_a.x | (1 << 0xE); | 710 | OBJ_ATTR_1(btn_a.id) = btn_a.x | (1 << 0xE); |
711 | OBJ_ATTR_2(btn_a.id) = sprites[btn_a.id].tile_start; | 711 | OBJ_ATTR_2(btn_a.id) = sprites[btn_a.id].tile_start; |
712 | 712 | ||
713 | ButtonSprite btn_l = { | ||
714 | .id = load_packed_sprite_data(&gba_btn_l_data, 2, 1), | ||
715 | .x = buttons_x - 64 - 28, | ||
716 | .y = buttons_y - 32 - 20, | ||
717 | .frame = 0, | ||
718 | .state = BTN_STATE_IDLE, | ||
719 | }; | ||
720 | OBJ_ATTR_0(btn_l.id) = btn_l.y | (1 << 0xE); | ||
721 | OBJ_ATTR_1(btn_l.id) = btn_l.x; | ||
722 | OBJ_ATTR_2(btn_l.id) = sprites[btn_l.id].tile_start; | ||
723 | |||
724 | ButtonSprite btn_r = { | ||
725 | .id = load_packed_sprite_data(&gba_btn_r_data, 2, 1), | ||
726 | .x = buttons_x + 32 + 20, | ||
727 | .y = buttons_y - 32 - 20, | ||
728 | .frame = 0, | ||
729 | .state = BTN_STATE_IDLE, | ||
730 | }; | ||
731 | OBJ_ATTR_0(btn_r.id) = btn_r.y | (1 << 0xE); | ||
732 | OBJ_ATTR_1(btn_r.id) = btn_r.x; | ||
733 | OBJ_ATTR_2(btn_r.id) = sprites[btn_r.id].tile_start; | ||
734 | |||
735 | ButtonSprite btn_start = { | 713 | ButtonSprite btn_start = { |
736 | .id = load_packed_sprite_data(&gba_btn_startselect_data, 2, 2), | 714 | .id = load_packed_sprite_data(&gba_btn_startselect_data, 2, 2), |
737 | .x = buttons_x - 10, | 715 | .x = buttons_x - 10, |
@@ -927,7 +905,92 @@ int main(void) { | |||
927 | }, | 905 | }, |
928 | }, | 906 | }, |
929 | }, | 907 | }, |
930 | 908 | // L. | |
909 | { | ||
910 | .frame = 0, | ||
911 | .n_obj = 3, | ||
912 | .n_frames = 8, | ||
913 | .state = BTN_STATE_RELEASED, | ||
914 | .animations = &btn_animation, | ||
915 | .sprites = &(ObjState[]){ | ||
916 | { | ||
917 | .id = 0, | ||
918 | .x = buttons_x - 64 - 28, | ||
919 | .y = buttons_y - 32 - 20, | ||
920 | .data = &gba_btn_l_data, | ||
921 | .n_tiles = 4, | ||
922 | .frames = 1, | ||
923 | .obj_attr_0 = OBJ_SHAPE_WIDE, | ||
924 | .obj_attr_1 = OBJ_SIZE_SMALL, | ||
925 | .obj_attr_2 = 0 | ||
926 | }, | ||
927 | { | ||
928 | .id = 0, | ||
929 | .x = buttons_x - 64 - 28, | ||
930 | .y = buttons_y - 32 - 20 + 2, | ||
931 | .data = &gba_btn_lr_shadow_data, | ||
932 | .n_tiles = 2, | ||
933 | .frames = 1, | ||
934 | .obj_attr_0 = OBJ_SHAPE_WIDE, | ||
935 | .obj_attr_1 = OBJ_SIZE_SMALL, | ||
936 | .obj_attr_2 = 0 | ||
937 | }, | ||
938 | { | ||
939 | .id = 0, | ||
940 | .x = buttons_x - 64 - 28 - 12, | ||
941 | .y = buttons_y - 32 - 20 - 12, | ||
942 | .data = &gba_btn_fx_lr, | ||
943 | .n_tiles = 4, | ||
944 | .frames = 4, | ||
945 | .obj_attr_0 = OBJ_SHAPE_SQUARE, | ||
946 | .obj_attr_1 = OBJ_SIZE_MID, | ||
947 | .obj_attr_2 = 0 | ||
948 | }, | ||
949 | }, | ||
950 | }, | ||
951 | // R. | ||
952 | { | ||
953 | .frame = 0, | ||
954 | .n_obj = 3, | ||
955 | .n_frames = 8, | ||
956 | .state = BTN_STATE_RELEASED, | ||
957 | .animations = &btn_animation, | ||
958 | .sprites = &(ObjState[]){ | ||
959 | { | ||
960 | .id = 0, | ||
961 | .x = buttons_x + 32 + 20 + 24, | ||
962 | .y = buttons_y - 32 - 20, | ||
963 | .data = &gba_btn_r_data, | ||
964 | .n_tiles = 4, | ||
965 | .frames = 1, | ||
966 | .obj_attr_0 = OBJ_SHAPE_WIDE, | ||
967 | .obj_attr_1 = OBJ_SIZE_SMALL, | ||
968 | .obj_attr_2 = 0 | ||
969 | }, | ||
970 | { | ||
971 | .id = 0, | ||
972 | .x = buttons_x + 32 + 20 + 24, | ||
973 | .y = buttons_y - 32 - 20 + 2, | ||
974 | .data = &gba_btn_lr_shadow_data, | ||
975 | .n_tiles = 2, | ||
976 | .frames = 1, | ||
977 | .obj_attr_0 = OBJ_SHAPE_WIDE, | ||
978 | .obj_attr_1 = OBJ_SIZE_SMALL, | ||
979 | .obj_attr_2 = 0 | ||
980 | }, | ||
981 | { | ||
982 | .id = 0, | ||
983 | .x = buttons_x + 32 + 20 + 12 + 24, | ||
984 | .y = buttons_y - 32 - 20 - 12, | ||
985 | .data = &gba_btn_fx_lr, | ||
986 | .n_tiles = 4, | ||
987 | .frames = 4, | ||
988 | .obj_attr_0 = OBJ_SHAPE_SQUARE, | ||
989 | .obj_attr_1 = OBJ_H_FLIP | OBJ_SIZE_MID, | ||
990 | .obj_attr_2 = 0 | ||
991 | }, | ||
992 | }, | ||
993 | }, | ||
931 | }; | 994 | }; |
932 | for (size_t i = 0; i < sizeof(buttons) / sizeof(MultiSprite); ++i) { | 995 | for (size_t i = 0; i < sizeof(buttons) / sizeof(MultiSprite); ++i) { |
933 | init_button_sprite(&buttons[i]); | 996 | init_button_sprite(&buttons[i]); |
@@ -1002,6 +1065,20 @@ int main(void) { | |||
1002 | } else { | 1065 | } else { |
1003 | buttons[3].state = BTN_STATE_RELEASED; | 1066 | buttons[3].state = BTN_STATE_RELEASED; |
1004 | } | 1067 | } |
1068 | if (key_pressed(KEY_L)) { | ||
1069 | buttons[4].state = BTN_STATE_PRESSED; | ||
1070 | } else if (key_hold(KEY_L)) { | ||
1071 | buttons[4].state = BTN_STATE_HOLD; | ||
1072 | } else { | ||
1073 | buttons[4].state = BTN_STATE_RELEASED; | ||
1074 | } | ||
1075 | if (key_pressed(KEY_R)) { | ||
1076 | buttons[5].state = BTN_STATE_PRESSED; | ||
1077 | } else if (key_hold(KEY_R)) { | ||
1078 | buttons[5].state = BTN_STATE_HOLD; | ||
1079 | } else { | ||
1080 | buttons[5].state = BTN_STATE_RELEASED; | ||
1081 | } | ||
1005 | 1082 | ||
1006 | if (key_hold(KEY_DOWN)) { | 1083 | if (key_hold(KEY_DOWN)) { |
1007 | y += 3; | 1084 | y += 3; |