diff --git a/README.md b/README.md index c2884a6..66aa253 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # Maan On My Wrist XL -This is an unofficial and greatly expanded port of the [Maan On My Wrist](https://apps.rebble.io/en_US/application/557724772d93bc0eae00004c?native=false&query=maan§ion=watchfaces) watchface to all devices not natively supported by the original. This includes the new Pebble Time 2 (emery) and Pebble Round 2 (gabbro), as well as the classic Pebble Time Round (chalk). +This is an unofficial and greatly expanded port of the [Maan On My Wrist](https://apps.rebble.io/en_US/application/557724772d93bc0eae00004c?native=false&query=maan§ion=watchfaces) watchface to all color Pebbles, including the new Pebble Time 2/Round 2. Since the original watchface is **NOT** open source, this "port" could be more accurately described as a recreation based on assets dumped from the original. @@ -12,8 +12,8 @@ Since the original watchface is **NOT** open source, this "port" could be more a - Some creature parts removed by the original developer (to conserve space) have been re-added - Most creature parts now have manually placed accent colors - Creature parts are now dynamically and randomly re-colored when loaded in -- This port is not compatible with 144x168 Pebbles - - The original [Maan On My Wrist](https://apps.rebble.io/en_US/application/557724772d93bc0eae00004c?native=false&query=maan§ion=watchfaces) is still perfectly silly on 144x168 watches! +- This port is not compatible with black&white Pebbles + - The original [Maan On My Wrist](https://apps.rebble.io/en_US/application/557724772d93bc0eae00004c?native=false&query=maan§ion=watchfaces) is still perfectly silly on b&w screens! # Development 1. Install the [Pebble SDK](https://developer.repebble.com/sdk/) diff --git a/package.json b/package.json index 089783f..5406d58 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "name": "H001", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -28,6 +29,7 @@ "name": "H002", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -40,6 +42,7 @@ "name": "H003", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -52,6 +55,7 @@ "name": "H004", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -64,6 +68,7 @@ "name": "H005", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -76,6 +81,7 @@ "name": "H006", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -88,6 +94,7 @@ "name": "H007", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -100,6 +107,7 @@ "name": "H008", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -112,6 +120,7 @@ "name": "H009", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -124,6 +133,7 @@ "name": "H010", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -136,6 +146,7 @@ "name": "H011", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -148,6 +159,7 @@ "name": "H012", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -160,6 +172,7 @@ "name": "H013", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -172,6 +185,7 @@ "name": "H014", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -184,6 +198,7 @@ "name": "H015", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -196,6 +211,7 @@ "name": "H016", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -208,6 +224,7 @@ "name": "H017", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -220,6 +237,7 @@ "name": "H018", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -232,6 +250,7 @@ "name": "H019", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -244,6 +263,7 @@ "name": "H020", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -256,6 +276,7 @@ "name": "H021", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -268,6 +289,7 @@ "name": "H022", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -280,6 +302,7 @@ "name": "H023", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -292,6 +315,7 @@ "name": "H024", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -304,6 +328,7 @@ "name": "H025", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -316,6 +341,7 @@ "name": "B001", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -328,6 +354,7 @@ "name": "B002", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -340,6 +367,7 @@ "name": "B003", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -352,6 +380,7 @@ "name": "B004", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -364,6 +393,7 @@ "name": "B005", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -376,6 +406,7 @@ "name": "B006", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -388,6 +419,7 @@ "name": "B007", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -400,6 +432,7 @@ "name": "B008", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -412,6 +445,7 @@ "name": "B009", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -424,6 +458,7 @@ "name": "B010", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -436,6 +471,7 @@ "name": "B011", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -448,6 +484,7 @@ "name": "B012", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -460,6 +497,7 @@ "name": "B013", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -472,6 +510,7 @@ "name": "B014", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -484,6 +523,7 @@ "name": "B015", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -496,6 +536,7 @@ "name": "B016", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -508,6 +549,7 @@ "name": "B017", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -520,6 +562,7 @@ "name": "B018", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -532,6 +575,7 @@ "name": "B019", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -544,6 +588,7 @@ "name": "B020", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -556,6 +601,7 @@ "name": "B021", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -568,6 +614,7 @@ "name": "B022", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -580,6 +627,7 @@ "name": "B023", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -592,6 +640,7 @@ "name": "B024", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -604,6 +653,7 @@ "name": "B025", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -616,6 +666,7 @@ "name": "XB001", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -628,6 +679,7 @@ "name": "BT", "spaceOptimization": "storage", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" @@ -649,6 +701,7 @@ "file": "fonts/RetroComputerTime.ttf", "name": "FONT_RETRO_COMPUTER_28", "targetPlatforms": [ + "basalt", "chalk" ], "type": "font" @@ -657,6 +710,7 @@ }, "sdkVersion": "3", "targetPlatforms": [ + "basalt", "chalk", "emery", "gabbro" diff --git a/src/c/main.c b/src/c/main.c index 2226e35..b366ff6 100644 --- a/src/c/main.c +++ b/src/c/main.c @@ -30,7 +30,7 @@ static GRect s_guy_head_grect_on_screen_resting; static GRect s_guy_butt_grect_on_screen_raised; static GRect s_guy_butt_grect_off_screen_raised; static GRect s_guy_butt_grect_on_screen_resting; -#if PBL_DISPLAY_WIDTH == 180 +#if PBL_DISPLAY_WIDTH <= 180 // 8x+20(4-x)+20, // where x=one_count, // 8=width of "1", @@ -65,7 +65,7 @@ static Animation *s_butt_raise_template; static Animation *s_butt_out_template; // declare lookup tables -#if PBL_DISPLAY_WIDTH == 180 +#if PBL_DISPLAY_WIDTH <= 180 static const uint8_t s_ones_offset[] = {0, 3, 6, 9, 12}; #else static const uint8_t s_ones_offset[] = {0, 4, 7, 11, 15}; @@ -124,7 +124,11 @@ static void update_minute_1() { // write the current date into a buffer & format static char s_date_buffer[16]; +#if PBL_DISPLAY_WIDTH <= 144 + strftime(s_date_buffer, sizeof(s_date_buffer), "%m .%d", tick_time); +#else strftime(s_date_buffer, sizeof(s_date_buffer), "%m.%d", tick_time); +#endif // update layers text_layer_set_text(s_time_layer, s_time_buffer); @@ -373,7 +377,7 @@ static void init() { s_random_color_next = s_dark_bg_colors[rand() % s_color_count]; // load custom font -#if PBL_DISPLAY_WIDTH == 180 +#if PBL_DISPLAY_WIDTH <= 180 s_custom_font = fonts_load_custom_font(resource_get_handle(RESOURCE_ID_FONT_RETRO_COMPUTER_28)); #else s_custom_font = fonts_load_custom_font(resource_get_handle(RESOURCE_ID_FONT_RETRO_COMPUTER_34)); @@ -382,11 +386,15 @@ static void init() { // load bluetooth indicator s_bt_icon = gbitmap_create_with_resource(RESOURCE_ID_BT); - // dynamically calculate coordinates for date/bt indicators +// dynamically calculate coordinates for date/bt indicators +#if PBL_DISPLAY_WIDTH <= 144 + s_date_pos_y = PBL_DISPLAY_HEIGHT / 2 - 6; +#else s_date_pos_y = PBL_DISPLAY_HEIGHT / 2 - 9; +#endif s_date_bt_width = (PBL_DISPLAY_WIDTH - s_max_time_width) / 2; s_date_grect_a = GRect(s_date_pos_x, s_date_pos_y, s_date_bt_width, s_date_height); -#if PBL_DISPLAY_WIDTH == 180 +#if PBL_DISPLAY_WIDTH <= 180 s_bt_pos_x = s_date_bt_width + s_max_time_width; #else s_bt_pos_x = s_date_bt_width + s_max_time_width + 1; @@ -396,7 +404,7 @@ static void init() { // pre-create layers used in update_minute_1 //// time -#if PBL_DISPLAY_WIDTH == 180 +#if PBL_DISPLAY_WIDTH <= 180 s_time_layer = text_layer_create(GRect(0, (PBL_DISPLAY_HEIGHT / 2) - 18, PBL_DISPLAY_WIDTH, 28)); #else s_time_layer = text_layer_create(GRect(0, (PBL_DISPLAY_HEIGHT / 2) - 21, PBL_DISPLAY_WIDTH, 34)); @@ -407,7 +415,11 @@ static void init() { //// date s_date_layer = text_layer_create(s_date_grect_a); text_layer_set_background_color(s_date_layer, GColorClear); +#if PBL_DISPLAY_WIDTH <= 144 + text_layer_set_font(s_date_layer, fonts_get_system_font(FONT_KEY_GOTHIC_09)); +#else text_layer_set_font(s_date_layer, fonts_get_system_font(FONT_KEY_GOTHIC_14_BOLD)); +#endif text_layer_set_text_alignment(s_date_layer, GTextAlignmentCenter); //// bt s_bt_layer = bitmap_layer_create(s_bt_grect_a);