From fc93eb668072744e7e99f291396a7092f69f7bf8 Mon Sep 17 00:00:00 2001 From: Vladislav Khorev Date: Sun, 19 Jul 2026 19:49:50 +0300 Subject: [PATCH] Fixing android bugs and more --- resources/w/ui/hud_step1android.json | 65 ++++ resources/w/ui/hud_step3android.json | 65 ++++ resources/w/ui/img/Hint2android.png | 3 + resources/w/ui/img/Hint4android.png | 3 + .../journal/PortraitQuestJournalBkg002.png | 4 +- .../PortraitQuestJournalItemBkg002.png | 4 +- .../w/ui/img/main/aboutPage003android.png | 3 + resources/w/ui/img/main/letters002android.png | 3 + resources/w/ui/img/phone/CharHeader001.png | 4 +- resources/w/ui/img/phone/CharHeader002.png | 4 +- resources/w/ui/img/phone/CharHeader003.png | 4 +- resources/w/ui/img/phone/ChatCoverTop002.png | 3 + resources/w/ui/img/phone/ChatListItem001.png | 4 +- resources/w/ui/img/phone/ChatListItem002.png | 4 +- resources/w/ui/img/phone/ChatListItem003.png | 4 +- resources/w/ui/img/phone/PhoneChat001.png | 4 +- resources/w/ui/img/phone/PhoneChatList001.png | 4 +- resources/w/ui/img/phone/bubble_in_center.png | 4 +- .../phone/bubble_in_corner_left_bottom.png | 4 +- .../img/phone/bubble_in_corner_left_top.png | 4 +- .../phone/bubble_in_corner_right_bottom.png | 4 +- .../img/phone/bubble_in_corner_right_top.png | 4 +- .../w/ui/img/phone/chat_top_cover001.png | 3 - resources/w/ui/img/phone2/Phone002.png | 4 +- .../w/ui/portrait_screen_phone_chat1.json | 10 +- .../w/ui/portrait_screen_phone_chat2.json | 8 +- .../w/ui/portrait_screen_phone_chat3.json | 8 +- resources/w/ui/screen_about_android.json | 67 ++++ resources/w/ui/screen_credits_portrait.json | 359 ++++++++++++++++++ resources/w/ui/screen_main_menu_android.json | 127 +++++++ resources/w/ui/screen_phone_chat1.json | 13 +- resources/w/ui/screen_phone_chat2.json | 13 +- resources/w/ui/screen_phone_chat3.json | 13 +- resources/w/ui_en/hud_step1android.json | 65 ++++ resources/w/ui_en/hud_step3android.json | 65 ++++ resources/w/ui_en/img/Hint2android.png | 3 + resources/w/ui_en/img/Hint4android.png | 3 + .../journal/PortraitQuestJournalBkg002.png | 4 +- .../PortraitQuestJournalItemBkg002.png | 4 +- .../w/ui_en/img/main/aboutPage003android.png | 3 + .../w/ui_en/img/main/letters002android.png | 3 + .../w/ui_en/img/phone/PhoneChatList001.png | 4 +- resources/w/ui_en/img/phone2/Phone002.png | 4 +- .../w/ui_en/portrait_screen_phone_chat1.json | 8 +- .../w/ui_en/portrait_screen_phone_chat2.json | 8 +- .../w/ui_en/portrait_screen_phone_chat3.json | 8 +- resources/w/ui_en/screen_about_android.json | 67 ++++ .../w/ui_en/screen_main_menu_android.json | 136 +++++++ resources/w/ui_en/screen_phone_chat1.json | 3 +- resources/w/ui_en/screen_phone_chat2.json | 13 +- resources/w/ui_en/screen_phone_chat3.json | 13 +- src/MenuManager.cpp | 42 +- src/MenuManager.h | 7 +- src/dialogue/DialogueOverlay.cpp | 36 +- src/dialogue/DialogueOverlay.h | 4 + 55 files changed, 1192 insertions(+), 141 deletions(-) create mode 100644 resources/w/ui/hud_step1android.json create mode 100644 resources/w/ui/hud_step3android.json create mode 100644 resources/w/ui/img/Hint2android.png create mode 100644 resources/w/ui/img/Hint4android.png create mode 100644 resources/w/ui/img/main/aboutPage003android.png create mode 100644 resources/w/ui/img/main/letters002android.png create mode 100644 resources/w/ui/img/phone/ChatCoverTop002.png delete mode 100644 resources/w/ui/img/phone/chat_top_cover001.png create mode 100644 resources/w/ui/screen_about_android.json create mode 100644 resources/w/ui/screen_credits_portrait.json create mode 100644 resources/w/ui/screen_main_menu_android.json create mode 100644 resources/w/ui_en/hud_step1android.json create mode 100644 resources/w/ui_en/hud_step3android.json create mode 100644 resources/w/ui_en/img/Hint2android.png create mode 100644 resources/w/ui_en/img/Hint4android.png create mode 100644 resources/w/ui_en/img/main/aboutPage003android.png create mode 100644 resources/w/ui_en/img/main/letters002android.png create mode 100644 resources/w/ui_en/screen_about_android.json create mode 100644 resources/w/ui_en/screen_main_menu_android.json diff --git a/resources/w/ui/hud_step1android.json b/resources/w/ui/hud_step1android.json new file mode 100644 index 0000000..0e320f8 --- /dev/null +++ b/resources/w/ui/hud_step1android.json @@ -0,0 +1,65 @@ +{ + "root": { + "type": "FrameLayout", + "name": "hud_root", + "width": "match_parent", + "height": "match_parent", + "children": [ + { + "type": "Button", + "name": "settingsButton", + "horizontal_gravity": "right", + "vertical_gravity": "top", + "x": -35, + "y": -35, + "width": 200, + "height": 200, + "clickZoneWidth": 176, + "clickZoneHeight": 176, + "textures": { + "normal": "resources/w/ui/img/Settings001_State=Default001.png", + "hover": "resources/w/ui/img/Settings001_State=Selected001.png", + "pressed": "resources/w/ui/img/Settings001_State=Tap001.png" + } + }, + { + "type": "StaticImage", + "name": "location", + "width": 380, + "height": 64, + "y": 30, + "horizontal_gravity": "center", + "vertical_gravity": "bottom", + "texture": "resources/w/ui/img/Location_dorm.png" + }, + { + "type": "LinearLayout", + "orientation": "vertical", + "vertical_align": "center", + "horizontal_align": "center", + "spacing": 0, + "width": "match_parent", + "height": 600, + "y": 300, + "children": [ + { + "type": "StaticImage", + "name": "hint2", + "width": 660, + "height": 201, + "horizontal_gravity": "center", + "texture": "resources/w/ui/img/Hint2android.png", + "pulse": { + "minScale": 0.92, + "maxScale": 1.08, + "periodMs": 1500 + }, + "fadeIn": { + "durationMs": 1000 + } + } + ] + } + ] + } +} \ No newline at end of file diff --git a/resources/w/ui/hud_step3android.json b/resources/w/ui/hud_step3android.json new file mode 100644 index 0000000..c0b1c6f --- /dev/null +++ b/resources/w/ui/hud_step3android.json @@ -0,0 +1,65 @@ +{ + "root": { + "type": "FrameLayout", + "name": "hud_root", + "width": "match_parent", + "height": "match_parent", + "children": [ + { + "type": "LinearLayout", + "orientation": "vertical", + "vertical_align": "center", + "horizontal_align": "center", + "spacing": 0, + "width": "match_parent", + "height": 600, + "y": 300, + "children": [ + { + "type": "StaticImage", + "name": "hint4", + "width": 705, + "height": 234, + "horizontal_gravity": "center", + "texture": "resources/w/ui/img/Hint4android.png", + "pulse": { + "minScale": 0.92, + "maxScale": 1.08, + "periodMs": 1500 + }, + "fadeIn": { + "durationMs": 1000 + } + } + ] + }, + { + "type": "Button", + "name": "settingsButton", + "horizontal_gravity": "right", + "vertical_gravity": "top", + "x": -35, + "y": -35, + "width": 200, + "height": 200, + "clickZoneWidth": 176, + "clickZoneHeight": 176, + "textures": { + "normal": "resources/w/ui/img/Settings001_State=Default001.png", + "hover": "resources/w/ui/img/Settings001_State=Selected001.png", + "pressed": "resources/w/ui/img/Settings001_State=Tap001.png" + } + }, + { + "type": "StaticImage", + "name": "location", + "width": 380, + "height": 64, + "y": 30, + "horizontal_gravity": "center", + "vertical_gravity": "bottom", + "texture": "resources/w/ui/img/Location_dorm.png" + } + ] + } +} \ No newline at end of file diff --git a/resources/w/ui/img/Hint2android.png b/resources/w/ui/img/Hint2android.png new file mode 100644 index 0000000..6e3873e --- /dev/null +++ b/resources/w/ui/img/Hint2android.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:28f2051a9e6d4086cb11e55a565335ed5a1c435dc6346a015621671d1aeae3c9 +size 335513 diff --git a/resources/w/ui/img/Hint4android.png b/resources/w/ui/img/Hint4android.png new file mode 100644 index 0000000..1ffa66a --- /dev/null +++ b/resources/w/ui/img/Hint4android.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c181b56a6445fd6c93f7279807f11cfa8653faa21c73864e06fbf1b47f495379 +size 374957 diff --git a/resources/w/ui/img/journal/PortraitQuestJournalBkg002.png b/resources/w/ui/img/journal/PortraitQuestJournalBkg002.png index 3eefc76..abe80bc 100644 --- a/resources/w/ui/img/journal/PortraitQuestJournalBkg002.png +++ b/resources/w/ui/img/journal/PortraitQuestJournalBkg002.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9bd59e91e0036873e6dcb3c08be1226b78848ac5662d24d255623a6d7dd835b1 -size 398106 +oid sha256:05fff68f99d7fa57b702378d39fff53f14c903c54900755a32d378c312943636 +size 626780 diff --git a/resources/w/ui/img/journal/PortraitQuestJournalItemBkg002.png b/resources/w/ui/img/journal/PortraitQuestJournalItemBkg002.png index c111665..69056bc 100644 --- a/resources/w/ui/img/journal/PortraitQuestJournalItemBkg002.png +++ b/resources/w/ui/img/journal/PortraitQuestJournalItemBkg002.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7d7661f912992db136540731df404a0beac3e721cacfcd0d72775925c85ea2dc -size 399551 +oid sha256:db8ce0d4a178a5ca96eaef1a874a8e02d8fc299093c4c1fa9317dab00665abc2 +size 635991 diff --git a/resources/w/ui/img/main/aboutPage003android.png b/resources/w/ui/img/main/aboutPage003android.png new file mode 100644 index 0000000..8908476 --- /dev/null +++ b/resources/w/ui/img/main/aboutPage003android.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ce1685a2e54bf230531513da5cea0344177969f653afd0584928d39a45005ff5 +size 198399 diff --git a/resources/w/ui/img/main/letters002android.png b/resources/w/ui/img/main/letters002android.png new file mode 100644 index 0000000..f1a0da0 --- /dev/null +++ b/resources/w/ui/img/main/letters002android.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0cc8b74b2de0348bce511c30cb3ea3f54fdca48f6de58cf66836c7b9e9d07a8b +size 148847 diff --git a/resources/w/ui/img/phone/CharHeader001.png b/resources/w/ui/img/phone/CharHeader001.png index 28ceab5..1fd24a3 100644 --- a/resources/w/ui/img/phone/CharHeader001.png +++ b/resources/w/ui/img/phone/CharHeader001.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6d5be1690fba10d83c921bb70a988cd7a5f2be7f7d0df8cd8744e5fcc8255ebc -size 94986 +oid sha256:d6df2be748433019866a9205deea97419f6e98ebad124b3eff3c63037af58897 +size 129750 diff --git a/resources/w/ui/img/phone/CharHeader002.png b/resources/w/ui/img/phone/CharHeader002.png index 5229f51..46e2dc3 100644 --- a/resources/w/ui/img/phone/CharHeader002.png +++ b/resources/w/ui/img/phone/CharHeader002.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:713517e6e79a676329c682d6bdaf1828cc445ba73b4b0d0aae7d99f621f24083 -size 96024 +oid sha256:5a15ff182b4be69ad63a55c0c1c2d46c60ede012d1cf45bbc8581ef68529ad71 +size 132663 diff --git a/resources/w/ui/img/phone/CharHeader003.png b/resources/w/ui/img/phone/CharHeader003.png index ec62407..86fc81e 100644 --- a/resources/w/ui/img/phone/CharHeader003.png +++ b/resources/w/ui/img/phone/CharHeader003.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:dc6fd46a524bd022a63a8a0d8a3d640fcf88004a1979ff9526d6b3c8eb12e73c -size 94027 +oid sha256:7e829060fdf1a1839c4202e5a2c639fcee991de85dd640d6c0128c32ddac8f2f +size 129595 diff --git a/resources/w/ui/img/phone/ChatCoverTop002.png b/resources/w/ui/img/phone/ChatCoverTop002.png new file mode 100644 index 0000000..bfbc48c --- /dev/null +++ b/resources/w/ui/img/phone/ChatCoverTop002.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9134e9bc3a38ec730aa1445bee4df440fd2bfb29c9764d94836d93e6f6ccc3cf +size 981167 diff --git a/resources/w/ui/img/phone/ChatListItem001.png b/resources/w/ui/img/phone/ChatListItem001.png index 14cd22f..85ea3e3 100644 --- a/resources/w/ui/img/phone/ChatListItem001.png +++ b/resources/w/ui/img/phone/ChatListItem001.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e3b4da034fa48784826c1ee92029903f93fcb9c8c689a41602e2ca1bdc91221b -size 96508 +oid sha256:f7b31c3baa9fb0fee79e9849e3410a2a60dd9c4b9688f3434fb2e6fee477f947 +size 122675 diff --git a/resources/w/ui/img/phone/ChatListItem002.png b/resources/w/ui/img/phone/ChatListItem002.png index 6dc29dd..d7a26da 100644 --- a/resources/w/ui/img/phone/ChatListItem002.png +++ b/resources/w/ui/img/phone/ChatListItem002.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ed658dee8c1858630d667b9f215db38110f8fbb3eba55da6ddc10f893b64b7b1 -size 97212 +oid sha256:188b83b23d51c37d4e96c669f880b9d0cea0ee27d8f25faa8ff3916c580ee2de +size 125160 diff --git a/resources/w/ui/img/phone/ChatListItem003.png b/resources/w/ui/img/phone/ChatListItem003.png index c905ecf..ef15c80 100644 --- a/resources/w/ui/img/phone/ChatListItem003.png +++ b/resources/w/ui/img/phone/ChatListItem003.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:db0dfc17d503bfe69c0b53a7109eecafb33daa870c6d12f82c4a7535872e7692 -size 95027 +oid sha256:385e8e8966a14743959f13b763de216c0ae762b8cf2e0d12d555c9cd5cc375de +size 122039 diff --git a/resources/w/ui/img/phone/PhoneChat001.png b/resources/w/ui/img/phone/PhoneChat001.png index cdb61da..f86e21b 100644 --- a/resources/w/ui/img/phone/PhoneChat001.png +++ b/resources/w/ui/img/phone/PhoneChat001.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:435386e704abc981777f2b8c3371e855d2cdd8bb50a163608b07b392abc56a43 -size 6755329 +oid sha256:28888ae280e10b8e56cd8314b5d9bca9daf613e370fc843193342646d19f3f05 +size 7885102 diff --git a/resources/w/ui/img/phone/PhoneChatList001.png b/resources/w/ui/img/phone/PhoneChatList001.png index 46cc9c7..fdd4143 100644 --- a/resources/w/ui/img/phone/PhoneChatList001.png +++ b/resources/w/ui/img/phone/PhoneChatList001.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:678f827cba4860b0d1bbe5f80d218c58eb0597e91948f6ddbd76ab1da0dd040e -size 6682970 +oid sha256:31a544f4c540c92898f37c2f99fc41f8606297d8f4e2799e1f8c7ec47ee1b957 +size 7808756 diff --git a/resources/w/ui/img/phone/bubble_in_center.png b/resources/w/ui/img/phone/bubble_in_center.png index 15aab82..9997c80 100644 --- a/resources/w/ui/img/phone/bubble_in_center.png +++ b/resources/w/ui/img/phone/bubble_in_center.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8fbb975263bf30d0ac53a98bf66b83395cd17024989f0b285bbfbbf0338b695d -size 678 +oid sha256:8978ba39e441936deb32302b1f802e219c24aa1c6e8c98c48ef05a027e138625 +size 386 diff --git a/resources/w/ui/img/phone/bubble_in_corner_left_bottom.png b/resources/w/ui/img/phone/bubble_in_corner_left_bottom.png index 96e06c1..f9dae2b 100644 --- a/resources/w/ui/img/phone/bubble_in_corner_left_bottom.png +++ b/resources/w/ui/img/phone/bubble_in_corner_left_bottom.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0e9bad79019ed14a41d471c8c6569f704fe1ae8fb14aad9439605d332cbfcdc3 -size 1048 +oid sha256:c9b0079b7c675d442c9fb2da5e68c8196a5b752f536b4fa3a0441cc83fefed7c +size 1059 diff --git a/resources/w/ui/img/phone/bubble_in_corner_left_top.png b/resources/w/ui/img/phone/bubble_in_corner_left_top.png index c461335..534ac43 100644 --- a/resources/w/ui/img/phone/bubble_in_corner_left_top.png +++ b/resources/w/ui/img/phone/bubble_in_corner_left_top.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7711cb9bc7e74816d3481dcba3f83199c0292871eaed4f028cd18ae2cdcbbda9 -size 1495 +oid sha256:d24f1c2d8a97585ad27ceaf5205d00c89aa6518806b5a7e7d9dd7748613b9fb5 +size 1500 diff --git a/resources/w/ui/img/phone/bubble_in_corner_right_bottom.png b/resources/w/ui/img/phone/bubble_in_corner_right_bottom.png index 3e938d4..891bcf5 100644 --- a/resources/w/ui/img/phone/bubble_in_corner_right_bottom.png +++ b/resources/w/ui/img/phone/bubble_in_corner_right_bottom.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:867b41ba1685dccfc4e6295f389b06e437d6c4cdf55b30fecad902ad393f15dd -size 1498 +oid sha256:8b4594d4f4128ff7f1a5bf5674363aeeaceac7b7099106fab7b5cbc86f486b57 +size 1518 diff --git a/resources/w/ui/img/phone/bubble_in_corner_right_top.png b/resources/w/ui/img/phone/bubble_in_corner_right_top.png index eed36ca..6eaa58f 100644 --- a/resources/w/ui/img/phone/bubble_in_corner_right_top.png +++ b/resources/w/ui/img/phone/bubble_in_corner_right_top.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:931c4517e5ec26b8179aa6665ead52b8924eb888271d48abae1670d05739d11a -size 1445 +oid sha256:14757013c45269709db341417f3660256819367087462d5e9b0698b7be63cdb4 +size 1492 diff --git a/resources/w/ui/img/phone/chat_top_cover001.png b/resources/w/ui/img/phone/chat_top_cover001.png deleted file mode 100644 index 1d05137..0000000 --- a/resources/w/ui/img/phone/chat_top_cover001.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:47886dd3fb9136dbd4f04d6aed3fef3da1190434e0740b41fc8df989787e1a07 -size 429470 diff --git a/resources/w/ui/img/phone2/Phone002.png b/resources/w/ui/img/phone2/Phone002.png index bf8617b..80ea676 100644 --- a/resources/w/ui/img/phone2/Phone002.png +++ b/resources/w/ui/img/phone2/Phone002.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c606e14b4c25b6ec1ac535f2c2264fdde3ec52e2eb6e7ceabc9095b808580ab4 -size 8973303 +oid sha256:41ec89e8504af5d5297397fa7f34fc0315995659ec200e272373c30c1a9dda88 +size 10096310 diff --git a/resources/w/ui/portrait_screen_phone_chat1.json b/resources/w/ui/portrait_screen_phone_chat1.json index 0ae9624..0fde0e7 100644 --- a/resources/w/ui/portrait_screen_phone_chat1.json +++ b/resources/w/ui/portrait_screen_phone_chat1.json @@ -48,13 +48,13 @@ { "type": "StaticImage", "name": "chatTopCover", - "width": 638, - "height": 101.25, + "width": 882, + "height": 158, "x": 0, - "y": 536, + "y": 569, "horizontal_gravity": "center", "vertical_gravity": "center", - "texture": "resources/w/ui/img/phone/chat_top_cover001.png" + "texture": "resources/w/ui/img/phone/ChatCoverTop002.png" }, { "type": "TextButton", @@ -62,7 +62,7 @@ "horizontal_gravity": "center", "vertical_gravity": "center", "x": 0.0, - "y": 424, + "y": 414, "width": 638, "height": 112, "text": "Айпери", diff --git a/resources/w/ui/portrait_screen_phone_chat2.json b/resources/w/ui/portrait_screen_phone_chat2.json index 9d4e853..1f1da57 100644 --- a/resources/w/ui/portrait_screen_phone_chat2.json +++ b/resources/w/ui/portrait_screen_phone_chat2.json @@ -48,13 +48,13 @@ { "type": "StaticImage", "name": "chatTopCover", - "width": 638, - "height": 101.25, + "width": 882, + "height": 158, "x": 0, - "y": 536, + "y": 569, "horizontal_gravity": "center", "vertical_gravity": "center", - "texture": "resources/w/ui/img/phone/chat_top_cover001.png" + "texture": "resources/w/ui/img/phone/ChatCoverTop002.png" }, { "type": "TextButton", diff --git a/resources/w/ui/portrait_screen_phone_chat3.json b/resources/w/ui/portrait_screen_phone_chat3.json index 6fc86db..27dab10 100644 --- a/resources/w/ui/portrait_screen_phone_chat3.json +++ b/resources/w/ui/portrait_screen_phone_chat3.json @@ -48,13 +48,13 @@ { "type": "StaticImage", "name": "chatTopCover", - "width": 638, - "height": 101.25, + "width": 882, + "height": 158, "x": 0, - "y": 536, + "y": 569, "horizontal_gravity": "center", "vertical_gravity": "center", - "texture": "resources/w/ui/img/phone/chat_top_cover001.png" + "texture": "resources/w/ui/img/phone/ChatCoverTop002.png" }, { "type": "TextButton", diff --git a/resources/w/ui/screen_about_android.json b/resources/w/ui/screen_about_android.json new file mode 100644 index 0000000..3895708 --- /dev/null +++ b/resources/w/ui/screen_about_android.json @@ -0,0 +1,67 @@ +{ + "root": { + "type": "FrameLayout", + "width": "match_parent", + "height": "match_parent", + "children": [ + { + "type": "StaticImage", + "name": "aboutBkg", + "width": 2992, + "height": 1632, + "horizontal_gravity": "center", + "vertical_gravity": "center", + "texture": "resources/w/ui/img/main/MenuBkg001_v001.png" + }, + { + "type": "StaticImage", + "name": "aboutPicture", + "width": 720, + "height": 720, + "horizontal_gravity": "center", + "vertical_gravity": "center", + "texture": "resources/w/ui/img/main/aboutPage003android.png" + }, + { + "type": "TextButton", + "name": "telegramButton", + "horizontal_gravity": "center", + "vertical_gravity": "center", + "y": -240, + "x": -150, + "width": 200, + "height": 60, + "text": "Telegram-канал", + "fontSize": 40, + "color": [0.55, 0.9, 1.0, 1.0], + "textCentered": true + }, + { + "type": "TextButton", + "name": "discordButton", + "horizontal_gravity": "center", + "vertical_gravity": "center", + "y": -240, + "x": 150, + "width": 200, + "height": 60, + "text": "Наш Discord", + "fontSize": 40, + "color": [0.55, 0.9, 1.0, 1.0], + "textCentered": true + }, + { + "type": "TextButton", + "name": "aboutBackButton", + "horizontal_gravity": "center", + "vertical_gravity": "bottom", + "y": 40, + "width": 200, + "height": 60, + "text": "Назад", + "fontSize": 40, + "textCentered": true + } + ] + } +} diff --git a/resources/w/ui/screen_credits_portrait.json b/resources/w/ui/screen_credits_portrait.json new file mode 100644 index 0000000..a909fb5 --- /dev/null +++ b/resources/w/ui/screen_credits_portrait.json @@ -0,0 +1,359 @@ +{ + "root": { + "type": "FrameLayout", + "width": "match_parent", + "height": "match_parent", + "children": [ + { + "type": "StaticImage", + "name": "creditsBkg", + "width": 2992, + "height": 1632, + "horizontal_gravity": "center", + "vertical_gravity": "center", + "texture": "resources/w/ui/img/main/MenuBkg001_v001.png" + }, + { + "type": "LinearLayout", + "name": "creditsLinearLayout", + "orientation": "vertical", + "horizontal_gravity": "center", + "vertical_gravity": "top", + "horizontal_align": "left", + "animations": { + "slowScroll": { + "repeat": true, + "steps": [ + { + "type": "move", + "to": [ + 0, + 3600 + ], + "duration": 40.0 + } + ] + } + }, + "width": 300, + "height": 4500, + "spacing": 20, + "children": [ + { + "type": "TextView", + "name": "smallPause", + "width": 300, + "height": 700, + "text": "", + "fontSize": 40, + "textCentered": true, + "color": [1.0, 1.0, 1.0, 1.0] + }, + { + "type": "TextView", + "name": "creditsTitleText", + "width": 300, + "height": 60, + "text": "Тень над Бишкеком Демо", + "fontSize": 40, + "textCentered": true, + "color": [1.0, 1.0, 1.0, 1.0] + }, + { + "type": "TextView", + "name": "creditsText1", + "width": 300, + "height": 20, + "text": "Продюсер:", + "fontSize": 32, + "textCentered": false, + "color": [1.0, 0.85, 0.0, 1.0] + }, + { + "type": "TextView", + "name": "creditsText2", + "width": 300, + "height": 40, + "text": "Владислав Хорев", + "fontSize": 32, + "textCentered": false, + "color": [1.0, 1.0, 1.0, 1.0] + }, + { + "type": "TextView", + "name": "creditsText3", + "width": 300, + "height": 20, + "text": "Гейм-дизайн:", + "fontSize": 32, + "textCentered": false, + "color": [1.0, 0.85, 0.0, 1.0] + }, + { + "type": "TextView", + "name": "creditsText4", + "width": 300, + "height": 20, + "text": "Владислав Хорев", + "fontSize": 32, + "textCentered": false, + "color": [1.0, 1.0, 1.0, 1.0] + }, + { + "type": "TextView", + "name": "creditsText5", + "width": 300, + "height": 40, + "text": "Лейла Боброва", + "fontSize": 32, + "textCentered": false, + "color": [1.0, 1.0, 1.0, 1.0] + }, + { + "type": "TextView", + "name": "creditsText6", + "width": 300, + "height": 20, + "text": "Сценарий:", + "fontSize": 32, + "textCentered": false, + "color": [1.0, 0.85, 0.0, 1.0] + }, + { + "type": "TextView", + "name": "creditsText7", + "width": 300, + "height": 20, + "text": "Владислав Хорев", + "fontSize": 32, + "textCentered": false, + "color": [1.0, 1.0, 1.0, 1.0] + }, + { + "type": "TextView", + "name": "creditsText8", + "width": 300, + "height": 40, + "text": "Лейла Боброва", + "fontSize": 32, + "textCentered": false, + "color": [1.0, 1.0, 1.0, 1.0] + }, + { + "type": "TextView", + "name": "creditsText9", + "width": 300, + "height": 20, + "text": "Разработка:", + "fontSize": 32, + "textCentered": false, + "color": [1.0, 0.85, 0.0, 1.0] + }, + { + "type": "TextView", + "name": "creditsText10", + "width": 300, + "height": 20, + "text": "Владислав Хорев", + "fontSize": 32, + "textCentered": false, + "color": [1.0, 1.0, 1.0, 1.0] + }, + { + "type": "TextView", + "name": "creditsText11", + "width": 300, + "height": 20, + "text": "Владислав Кан", + "fontSize": 32, + "textCentered": false, + "color": [1.0, 1.0, 1.0, 1.0] + }, + { + "type": "TextView", + "name": "creditsText12", + "width": 300, + "height": 20, + "text": "Бексултан Алмазбеков", + "fontSize": 32, + "textCentered": false, + "color": [1.0, 1.0, 1.0, 1.0] + }, + { + "type": "TextView", + "name": "creditsText13", + "width": 300, + "height": 40, + "text": "Сергей Зотов", + "fontSize": 32, + "textCentered": false, + "color": [1.0, 1.0, 1.0, 1.0] + }, + { + "type": "TextView", + "name": "creditsText14", + "width": 300, + "height": 20, + "text": "Персонажи и анимации:", + "fontSize": 32, + "textCentered": false, + "color": [1.0, 0.85, 0.0, 1.0] + }, + { + "type": "TextView", + "name": "creditsText15", + "width": 300, + "height": 20, + "text": "Дмитрий Прохорчик", + "fontSize": 32, + "textCentered": false, + "color": [1.0, 1.0, 1.0, 1.0] + }, + { + "type": "TextView", + "name": "creditsText16", + "width": 300, + "height": 40, + "text": "Роман Тресцов", + "fontSize": 32, + "textCentered": false, + "color": [1.0, 1.0, 1.0, 1.0] + }, + { + "type": "TextView", + "name": "creditsText17", + "width": 300, + "height": 20, + "text": "3D ассеты:", + "fontSize": 32, + "textCentered": false, + "color": [1.0, 0.85, 0.0, 1.0] + }, + { + "type": "TextView", + "name": "creditsText18", + "width": 300, + "height": 20, + "text": "Дмитрий Прохорчик", + "fontSize": 32, + "textCentered": false, + "color": [1.0, 1.0, 1.0, 1.0] + }, + { + "type": "TextView", + "name": "creditsText19", + "width": 300, + "height": 40, + "text": "Ishmaladi (turbosquid.com)", + "fontSize": 32, + "textCentered": false, + "color": [1.0, 1.0, 1.0, 1.0] + }, + { + "type": "TextView", + "name": "creditsText20", + "width": 300, + "height": 20, + "text": "Арты:", + "fontSize": 32, + "textCentered": false, + "color": [1.0, 0.85, 0.0, 1.0] + }, + { + "type": "TextView", + "name": "creditsText21", + "width": 300, + "height": 40, + "text": "Maggie Tem", + "fontSize": 32, + "textCentered": false, + "color": [1.0, 1.0, 1.0, 1.0] + }, + { + "type": "TextView", + "name": "creditsText22", + "width": 300, + "height": 20, + "text": "UI/UX:", + "fontSize": 32, + "textCentered": false, + "color": [1.0, 0.85, 0.0, 1.0] + }, + { + "type": "TextView", + "name": "creditsText23", + "width": 300, + "height": 40, + "text": "Кенже Казматова", + "fontSize": 32, + "textCentered": false, + "color": [1.0, 1.0, 1.0, 1.0] + }, + { + "type": "TextView", + "name": "creditsText24", + "width": 300, + "height": 20, + "text": "Музыка:", + "fontSize": 32, + "textCentered": false, + "color": [1.0, 0.85, 0.0, 1.0] + }, + { + "type": "TextView", + "name": "creditsText25", + "width": 300, + "height": 40, + "text": "Pazetic_Ocean", + "fontSize": 32, + "textCentered": false, + "color": [1.0, 1.0, 1.0, 1.0] + }, + { + "type": "TextView", + "name": "creditsText26", + "width": 300, + "height": 20, + "text": "Звуки:", + "fontSize": 32, + "textCentered": false, + "color": [1.0, 0.85, 0.0, 1.0] + }, + { + "type": "TextView", + "name": "creditsText27", + "width": 300, + "height": 300, + "text": "IENBA, ImAFoley, stradie,\nItsTheGoodstuff, uwesoundboiz,\nAnthousai, Foxfire-,\nn-lerche, CogFireStudios,\nadcbicycle, AntoineRomo,\nSmallConfusion, joedeshon,\nefectirijillo (FreeSound.org)", + "fontSize": 32, + "textCentered": false, + "color": [1.0, 1.0, 1.0, 1.0] + }, + { + "type": "TextView", + "name": "creditsText28", + "width": 300, + "height": 40, + "text": "Некоторые арты, 3D модели\nи текстуры были созданы\nс помощью нейросетей.", + "fontSize": 32, + "textCentered": false, + "color": [1.0, 1.0, 1.0, 1.0] + } + ] + }, + { + "type": "Button", + "name": "creditsBackButton", + "width": "match_parent", + "height": "match_parent", + "x": 0, + "y": 0, + "textures": { + "normal": "resources/transparent.png", + "hover": "resources/transparent.png", + "pressed": "resources/transparent.png" + } + } + ] + } +} diff --git a/resources/w/ui/screen_main_menu_android.json b/resources/w/ui/screen_main_menu_android.json new file mode 100644 index 0000000..f798abd --- /dev/null +++ b/resources/w/ui/screen_main_menu_android.json @@ -0,0 +1,127 @@ +{ + "root": { + "type": "FrameLayout", + "width": "match_parent", + "height": "match_parent", + "children": [ + { + "type": "StaticImage", + "name": "mainMenuBkg", + "width": 2992, + "height": 1632, + "horizontal_gravity": "center", + "vertical_gravity": "center", + "texture": "resources/w/ui/img/main/MenuBkg001_v001.png" + }, + { + "type": "StaticImage", + "name": "mainMenuBkg2", + "horizontal_gravity": "center", + "vertical_gravity": "bottom", + "width": 720, + "height": 720, + "texture": "resources/w/ui/img/main/main002.png" + }, + { + "type": "StaticImage", + "name": "mainMenuUnderLetterBkg", + "horizontal_gravity": "center", + "vertical_gravity": "center", + "width": 450, + "height": 900, + "texture": "resources/w/ui/img/main/under_letters002.png" + }, + { + "type": "StaticImage", + "name": "mainMenuLogo", + "horizontal_gravity": "center", + "vertical_gravity": "center", + "width": 320, + "height": 180, + "y": 235, + "texture": "resources/w/ui/img/main/letters002android.png" + }, + { + "type": "LinearLayout", + "orientation": "vertical", + "horizontal_align": "center", + "vertical_align": "center", + "spacing": 24, + "y": 140, + "width": "match_parent", + "height": "match_parent", + "children": [ + { + "type": "TextButton", + "name": "menuStartButton", + "width": 300, + "height": 44, + "text": "Начать игру", + "fontSize": 48, + "textCentered": true + }, + { + "type": "TextButton", + "name": "menuLoadButton", + "width": 300, + "height": 44, + "text": "Загрузить игру", + "fontSize": 48, + "textCentered": true + }, + { + "type": "TextButton", + "name": "menuSettingsButton", + "width": 300, + "height": 44, + "text": "Настройки", + "fontSize": 48, + "textCentered": true + }, + { + "type": "TextButton", + "name": "menuLanguageButton", + "width": 300, + "height": 44, + "text": "Язык / Language", + "fontSize": 48, + "textCentered": true + }, + { + "type": "TextButton", + "name": "menuAboutButton", + "width": 300, + "height": 44, + "text": "О игре", + "fontSize": 48, + "textCentered": true + }, + { + "type": "TextButton", + "name": "menuCreditsButton", + "width": 300, + "height": 44, + "text": "Авторы", + "fontSize": 48, + "textCentered": true + } + ] + }, + { + "type": "TextView", + "name": "mainMenuVersion", + "horizontal_gravity": "right", + "vertical_gravity": "bottom", + "x": 10, + "y": 10, + "width": 160, + "height": 36, + "text": "v. 1.0.1", + "fontSize": 24, + "textCentered": false, + "topAligned": true, + "paddingY": 4 + } + ] + } +} \ No newline at end of file diff --git a/resources/w/ui/screen_phone_chat1.json b/resources/w/ui/screen_phone_chat1.json index 012d5ed..a1d5654 100644 --- a/resources/w/ui/screen_phone_chat1.json +++ b/resources/w/ui/screen_phone_chat1.json @@ -43,22 +43,13 @@ "width": "match_parent", "height": "match_parent" }, - { - "type": "StaticImage", - "name": "chatTopCover", - "width": 446.25, - "height": 70.82, - "x": 0, - "y": -50.82, - "horizontal_gravity": "center", - "texture": "resources/w/ui/img/phone/chat_top_cover001.png" - }, { "type": "TextButton", "name": "chatTitleButton", "horizontal_gravity": "center", + "vertical_gravity": "center", "x": 0.0, - "y": 20.0, + "y": 280.0, "width": 446.25, "height": 78.4, "text": "Айпери", diff --git a/resources/w/ui/screen_phone_chat2.json b/resources/w/ui/screen_phone_chat2.json index ab028bd..f4fdd12 100644 --- a/resources/w/ui/screen_phone_chat2.json +++ b/resources/w/ui/screen_phone_chat2.json @@ -43,22 +43,13 @@ "width": "match_parent", "height": "match_parent" }, - { - "type": "StaticImage", - "name": "chatTopCover", - "width": 446.25, - "height": 70.82, - "x": 0, - "y": -50.82, - "horizontal_gravity": "center", - "texture": "resources/w/ui/img/phone/chat_top_cover001.png" - }, { "type": "TextButton", "name": "chatTitleButton", "horizontal_gravity": "center", + "vertical_gravity": "center", "x": 0.0, - "y": 20.0, + "y": 280.0, "width": 446.25, "height": 78.4, "text": "Атам", diff --git a/resources/w/ui/screen_phone_chat3.json b/resources/w/ui/screen_phone_chat3.json index 1b7f5a7..a7ce61c 100644 --- a/resources/w/ui/screen_phone_chat3.json +++ b/resources/w/ui/screen_phone_chat3.json @@ -43,22 +43,13 @@ "width": "match_parent", "height": "match_parent" }, - { - "type": "StaticImage", - "name": "chatTopCover", - "width": 446.25, - "height": 70.82, - "x": 0, - "y": -50.82, - "horizontal_gravity": "center", - "texture": "resources/w/ui/img/phone/chat_top_cover001.png" - }, { "type": "TextButton", "name": "chatTitleButton", "horizontal_gravity": "center", + "vertical_gravity": "center", "x": 0.0, - "y": 20.0, + "y": 280.0, "width": 446.25, "height": 78.4, "text": "БишкекНовости", diff --git a/resources/w/ui_en/hud_step1android.json b/resources/w/ui_en/hud_step1android.json new file mode 100644 index 0000000..403a0e4 --- /dev/null +++ b/resources/w/ui_en/hud_step1android.json @@ -0,0 +1,65 @@ +{ + "root": { + "type": "FrameLayout", + "name": "hud_root", + "width": "match_parent", + "height": "match_parent", + "children": [ + { + "type": "Button", + "name": "settingsButton", + "horizontal_gravity": "right", + "vertical_gravity": "top", + "x": -35, + "y": -35, + "width": 200, + "height": 200, + "clickZoneWidth": 176, + "clickZoneHeight": 176, + "textures": { + "normal": "resources/w/ui/img/Settings001_State=Default001.png", + "hover": "resources/w/ui/img/Settings001_State=Selected001.png", + "pressed": "resources/w/ui/img/Settings001_State=Tap001.png" + } + }, + { + "type": "StaticImage", + "name": "location", + "width": 380, + "height": 64, + "y": 30, + "horizontal_gravity": "center", + "vertical_gravity": "bottom", + "texture": "resources/w/ui_en/img/Location_dorm.png" + }, + { + "type": "LinearLayout", + "orientation": "vertical", + "vertical_align": "center", + "horizontal_align": "center", + "spacing": 0, + "width": "match_parent", + "height": 600, + "y": 300, + "children": [ + { + "type": "StaticImage", + "name": "hint2", + "width": 660, + "height": 220, + "horizontal_gravity": "center", + "texture": "resources/w/ui_en/img/Hint2android.png", + "pulse": { + "minScale": 0.88, + "maxScale": 0.95, + "periodMs": 1500 + }, + "fadeIn": { + "durationMs": 1000 + } + } + ] + } + ] + } +} \ No newline at end of file diff --git a/resources/w/ui_en/hud_step3android.json b/resources/w/ui_en/hud_step3android.json new file mode 100644 index 0000000..377514f --- /dev/null +++ b/resources/w/ui_en/hud_step3android.json @@ -0,0 +1,65 @@ +{ + "root": { + "type": "FrameLayout", + "name": "hud_root", + "width": "match_parent", + "height": "match_parent", + "children": [ + { + "type": "Button", + "name": "settingsButton", + "horizontal_gravity": "right", + "vertical_gravity": "top", + "x": -35, + "y": -35, + "width": 200, + "height": 200, + "clickZoneWidth": 176, + "clickZoneHeight": 176, + "textures": { + "normal": "resources/w/ui/img/Settings001_State=Default001.png", + "hover": "resources/w/ui/img/Settings001_State=Selected001.png", + "pressed": "resources/w/ui/img/Settings001_State=Tap001.png" + } + }, + { + "type": "StaticImage", + "name": "location", + "width": 380, + "height": 64, + "y": 30, + "horizontal_gravity": "center", + "vertical_gravity": "bottom", + "texture": "resources/w/ui_en/img/Location_dorm.png" + }, + { + "type": "LinearLayout", + "orientation": "vertical", + "vertical_align": "center", + "horizontal_align": "center", + "spacing": 0, + "width": "match_parent", + "height": 600, + "y": 300, + "children": [ + { + "type": "StaticImage", + "name": "hint4", + "width": 705, + "height": 195, + "horizontal_gravity": "center", + "texture": "resources/w/ui_en/img/Hint4android.png", + "pulse": { + "minScale": 0.88, + "maxScale": 0.95, + "periodMs": 1500 + }, + "fadeIn": { + "durationMs": 1000 + } + } + ] + } + ] + } +} \ No newline at end of file diff --git a/resources/w/ui_en/img/Hint2android.png b/resources/w/ui_en/img/Hint2android.png new file mode 100644 index 0000000..ec00d90 --- /dev/null +++ b/resources/w/ui_en/img/Hint2android.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0a0fa9192023fcade6fa4edc8565f6590e4ad81d451f90dc2ac584003ff1604f +size 373043 diff --git a/resources/w/ui_en/img/Hint4android.png b/resources/w/ui_en/img/Hint4android.png new file mode 100644 index 0000000..d612045 --- /dev/null +++ b/resources/w/ui_en/img/Hint4android.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d8df5727798a08070f17fd297308889957c1147d12c9bfa005b38b6a6aa552e +size 330435 diff --git a/resources/w/ui_en/img/journal/PortraitQuestJournalBkg002.png b/resources/w/ui_en/img/journal/PortraitQuestJournalBkg002.png index 44976ba..020446a 100644 --- a/resources/w/ui_en/img/journal/PortraitQuestJournalBkg002.png +++ b/resources/w/ui_en/img/journal/PortraitQuestJournalBkg002.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:99c29079b2644c20d6d1d06c9f96f9d2ba338656c027631ff7ed4509d8b15631 -size 391735 +oid sha256:3c9dbf22704d001cf61ad39f626251170d60be94fcf8975b4e38eb55951fc1d9 +size 612507 diff --git a/resources/w/ui_en/img/journal/PortraitQuestJournalItemBkg002.png b/resources/w/ui_en/img/journal/PortraitQuestJournalItemBkg002.png index 97899d4..8648f00 100644 --- a/resources/w/ui_en/img/journal/PortraitQuestJournalItemBkg002.png +++ b/resources/w/ui_en/img/journal/PortraitQuestJournalItemBkg002.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ab4df22131077185aaa5f8dc2cdff0f3592536ccd87f628487a94a0964a9cebf -size 399566 +oid sha256:0356c42a5e1468dbde8d2da4db941266d253ec7a2249873121c78cebcb616c88 +size 628325 diff --git a/resources/w/ui_en/img/main/aboutPage003android.png b/resources/w/ui_en/img/main/aboutPage003android.png new file mode 100644 index 0000000..458297c --- /dev/null +++ b/resources/w/ui_en/img/main/aboutPage003android.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d3b61533c5cf3090233f03ac8f33bde9c5d956d67f0c26c2a718955212bfe4f7 +size 194575 diff --git a/resources/w/ui_en/img/main/letters002android.png b/resources/w/ui_en/img/main/letters002android.png new file mode 100644 index 0000000..5c9e4c7 --- /dev/null +++ b/resources/w/ui_en/img/main/letters002android.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:05ec69317e0153e9d2b9d32045089e8e87ce0669cc3c4df3fca8deb3aa0172e3 +size 176074 diff --git a/resources/w/ui_en/img/phone/PhoneChatList001.png b/resources/w/ui_en/img/phone/PhoneChatList001.png index 9b84630..35201e1 100644 --- a/resources/w/ui_en/img/phone/PhoneChatList001.png +++ b/resources/w/ui_en/img/phone/PhoneChatList001.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6a555d59e411f733a1581fb152589d76288593d87ab4b9d62966f91a33400f5e -size 6685051 +oid sha256:c7fa4b7b60f07299fdb5acc6173d336e612362b96925f7ba29f37220b875d8da +size 7809568 diff --git a/resources/w/ui_en/img/phone2/Phone002.png b/resources/w/ui_en/img/phone2/Phone002.png index 6d70801..8a58dde 100644 --- a/resources/w/ui_en/img/phone2/Phone002.png +++ b/resources/w/ui_en/img/phone2/Phone002.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7010fc41a4e5bbf9129d88fd2e9a85028349facad0e68ac6689a3533a598de1e -size 7586824 +oid sha256:1041f4fabc2f435673ded4141aa4273639ff5e563818727340cb4c74abd9ffe5 +size 9998704 diff --git a/resources/w/ui_en/portrait_screen_phone_chat1.json b/resources/w/ui_en/portrait_screen_phone_chat1.json index 684c972..439fee4 100644 --- a/resources/w/ui_en/portrait_screen_phone_chat1.json +++ b/resources/w/ui_en/portrait_screen_phone_chat1.json @@ -48,13 +48,13 @@ { "type": "StaticImage", "name": "chatTopCover", - "width": 638, - "height": 101.25, + "width": 882, + "height": 158, "x": 0, - "y": 536, + "y": 569, "horizontal_gravity": "center", "vertical_gravity": "center", - "texture": "resources/w/ui/img/phone/chat_top_cover001.png" + "texture": "resources/w/ui/img/phone/ChatCoverTop002.png" }, { "type": "TextButton", diff --git a/resources/w/ui_en/portrait_screen_phone_chat2.json b/resources/w/ui_en/portrait_screen_phone_chat2.json index e47578b..3587a90 100644 --- a/resources/w/ui_en/portrait_screen_phone_chat2.json +++ b/resources/w/ui_en/portrait_screen_phone_chat2.json @@ -48,13 +48,13 @@ { "type": "StaticImage", "name": "chatTopCover", - "width": 638, - "height": 101.25, + "width": 882, + "height": 158, "x": 0, - "y": 536, + "y": 569, "horizontal_gravity": "center", "vertical_gravity": "center", - "texture": "resources/w/ui/img/phone/chat_top_cover001.png" + "texture": "resources/w/ui/img/phone/ChatCoverTop002.png" }, { "type": "TextButton", diff --git a/resources/w/ui_en/portrait_screen_phone_chat3.json b/resources/w/ui_en/portrait_screen_phone_chat3.json index 7562a47..bd69645 100644 --- a/resources/w/ui_en/portrait_screen_phone_chat3.json +++ b/resources/w/ui_en/portrait_screen_phone_chat3.json @@ -48,13 +48,13 @@ { "type": "StaticImage", "name": "chatTopCover", - "width": 638, - "height": 101.25, + "width": 882, + "height": 158, "x": 0, - "y": 536, + "y": 569, "horizontal_gravity": "center", "vertical_gravity": "center", - "texture": "resources/w/ui/img/phone/chat_top_cover001.png" + "texture": "resources/w/ui/img/phone/ChatCoverTop002.png" }, { "type": "TextButton", diff --git a/resources/w/ui_en/screen_about_android.json b/resources/w/ui_en/screen_about_android.json new file mode 100644 index 0000000..f56b04e --- /dev/null +++ b/resources/w/ui_en/screen_about_android.json @@ -0,0 +1,67 @@ +{ + "root": { + "type": "FrameLayout", + "width": "match_parent", + "height": "match_parent", + "children": [ + { + "type": "StaticImage", + "name": "aboutBkg", + "width": 2992, + "height": 1632, + "horizontal_gravity": "center", + "vertical_gravity": "center", + "texture": "resources/w/ui/img/main/MenuBkg001_v001.png" + }, + { + "type": "StaticImage", + "name": "aboutPicture", + "width": 720, + "height": 720, + "horizontal_gravity": "center", + "vertical_gravity": "center", + "texture": "resources/w/ui_en/img/main/aboutPage003android.png" + }, + { + "type": "TextButton", + "name": "telegramButton", + "horizontal_gravity": "center", + "vertical_gravity": "center", + "y": -240, + "x": -150, + "width": 200, + "height": 60, + "text": "Telegram channel", + "fontSize": 40, + "color": [0.55, 0.9, 1.0, 1.0], + "textCentered": true + }, + { + "type": "TextButton", + "name": "discordButton", + "horizontal_gravity": "center", + "vertical_gravity": "center", + "y": -240, + "x": 150, + "width": 200, + "height": 60, + "text": "Our Discord", + "fontSize": 40, + "color": [0.55, 0.9, 1.0, 1.0], + "textCentered": true + }, + { + "type": "TextButton", + "name": "aboutBackButton", + "horizontal_gravity": "center", + "vertical_gravity": "bottom", + "y": 40, + "width": 200, + "height": 60, + "text": "Back", + "fontSize": 40, + "textCentered": true + } + ] + } +} diff --git a/resources/w/ui_en/screen_main_menu_android.json b/resources/w/ui_en/screen_main_menu_android.json new file mode 100644 index 0000000..b642b9c --- /dev/null +++ b/resources/w/ui_en/screen_main_menu_android.json @@ -0,0 +1,136 @@ +{ + "root": { + "type": "FrameLayout", + "width": "match_parent", + "height": "match_parent", + "children": [ + { + "type": "StaticImage", + "name": "mainMenuBkg", + "width": 2992, + "height": 1632, + "horizontal_gravity": "center", + "vertical_gravity": "center", + "texture": "resources/w/ui/img/main/MenuBkg001_v001.png" + }, + { + "type": "StaticImage", + "name": "mainMenuBkg2", + "horizontal_gravity": "center", + "vertical_gravity": "bottom", + "width": 720, + "height": 720, + "texture": "resources/w/ui/img/main/main002.png" + }, + { + "type": "StaticImage", + "name": "mainMenuUnderLetterBkg", + "horizontal_gravity": "center", + "vertical_gravity": "center", + "width": 450, + "height": 900, + "texture": "resources/w/ui/img/main/under_letters002.png" + }, + { + "type": "StaticImage", + "name": "mainMenuLogo", + "horizontal_gravity": "center", + "vertical_gravity": "center", + "width": 320, + "height": 180, + "y": 235, + "texture": "resources/w/ui_en/img/main/letters002android.png" + }, + { + "type": "LinearLayout", + "orientation": "vertical", + "horizontal_align": "center", + "vertical_align": "center", + "spacing": 24, + "y": 140, + "width": "match_parent", + "height": "match_parent", + "children": [ + { + "type": "TextButton", + "name": "menuStartButton", + "width": 300, + "height": 44, + "text": "Start Game", + "fontSize": 48, + "textCentered": true + }, + { + "type": "TextButton", + "name": "menuLoadButton", + "width": 300, + "height": 44, + "text": "Load Game", + "fontSize": 48, + "textCentered": true + }, + { + "type": "TextButton", + "name": "menuSettingsButton", + "width": 300, + "height": 44, + "text": "Settings", + "fontSize": 48, + "textCentered": true + }, + { + "type": "TextButton", + "name": "menuLanguageButton", + "width": 300, + "height": 44, + "text": "Язык / Language", + "fontSize": 48, + "textCentered": true + }, + { + "type": "TextButton", + "name": "menuAboutButton", + "width": 300, + "height": 44, + "text": "About Game", + "fontSize": 48, + "textCentered": true + }, + { + "type": "TextButton", + "name": "menuCreditsButton", + "width": 300, + "height": 44, + "text": "Credits", + "fontSize": 48, + "textCentered": true + }, + { + "type": "TextButton", + "name": "menuExitButton", + "width": 300, + "height": 44, + "text": "Exit", + "fontSize": 48, + "textCentered": true + } + ] + }, + { + "type": "TextView", + "name": "mainMenuVersion", + "horizontal_gravity": "right", + "vertical_gravity": "bottom", + "x": 10, + "y": 10, + "width": 160, + "height": 36, + "text": "v. 1.0.1", + "fontSize": 24, + "textCentered": false, + "topAligned": true, + "paddingY": 4 + } + ] + } +} \ No newline at end of file diff --git a/resources/w/ui_en/screen_phone_chat1.json b/resources/w/ui_en/screen_phone_chat1.json index ff9e290..dab6051 100644 --- a/resources/w/ui_en/screen_phone_chat1.json +++ b/resources/w/ui_en/screen_phone_chat1.json @@ -57,8 +57,9 @@ "type": "TextButton", "name": "chatTitleButton", "horizontal_gravity": "center", + "vertical_gravity": "center", "x": 0.0, - "y": 20.0, + "y": 280.0, "width": 446.25, "height": 78.4, "text": "Aiperi", diff --git a/resources/w/ui_en/screen_phone_chat2.json b/resources/w/ui_en/screen_phone_chat2.json index f2d89b5..11931a1 100644 --- a/resources/w/ui_en/screen_phone_chat2.json +++ b/resources/w/ui_en/screen_phone_chat2.json @@ -43,22 +43,13 @@ "width": "match_parent", "height": "match_parent" }, - { - "type": "StaticImage", - "name": "chatTopCover", - "width": 446.25, - "height": 70.82, - "x": 0, - "y": -50.82, - "horizontal_gravity": "center", - "texture": "resources/w/ui/img/phone/chat_top_cover001.png" - }, { "type": "TextButton", "name": "chatTitleButton", "horizontal_gravity": "center", + "vertical_gravity": "center", "x": 0.0, - "y": 20.0, + "y": 280.0, "width": 446.25, "height": 78.4, "text": "Dad", diff --git a/resources/w/ui_en/screen_phone_chat3.json b/resources/w/ui_en/screen_phone_chat3.json index 89b1edd..0dcfd8a 100644 --- a/resources/w/ui_en/screen_phone_chat3.json +++ b/resources/w/ui_en/screen_phone_chat3.json @@ -43,22 +43,13 @@ "width": "match_parent", "height": "match_parent" }, - { - "type": "StaticImage", - "name": "chatTopCover", - "width": 446.25, - "height": 70.82, - "x": 0, - "y": -50.82, - "horizontal_gravity": "center", - "texture": "resources/w/ui/img/phone/chat_top_cover001.png" - }, { "type": "TextButton", "name": "chatTitleButton", "horizontal_gravity": "center", + "vertical_gravity": "center", "x": 0.0, - "y": 20.0, + "y": 280.0, "width": 446.25, "height": 78.4, "text": "Bishkek.News", diff --git a/src/MenuManager.cpp b/src/MenuManager.cpp index a8e3e1d..5eed02b 100644 --- a/src/MenuManager.cpp +++ b/src/MenuManager.cpp @@ -160,9 +160,18 @@ namespace FRG { void MenuManager::loadUiRoots(const std::string& zipFile) { hudRoot = loadLocalizedUi("resources/w/ui/hud_step0.json", zipFile); + +#ifdef __ANDROID__ + hudStep1Root = loadLocalizedUi("resources/w/ui/hud_step1android.json", zipFile); +#else hudStep1Root = loadLocalizedUi("resources/w/ui/hud_step1.json", zipFile); +#endif hudStep2Root = loadLocalizedUi("resources/w/ui/hud_step2.json", zipFile); +#ifdef __ANDROID__ + hudStep3Root = loadLocalizedUi("resources/w/ui/hud_step3android.json", zipFile); +#else hudStep3Root = loadLocalizedUi("resources/w/ui/hud_step3.json", zipFile); +#endif hudStep4Root = loadLocalizedUi("resources/w/ui/hud_step4.json", zipFile); hudStep5aRoot = loadLocalizedUi("resources/w/ui/hud_step5a.json", zipFile); hudStep5bRoot = loadLocalizedUi("resources/w/ui/hud_step5b.json", zipFile); @@ -216,9 +225,17 @@ namespace FRG { questJournalRoot = loadLocalizedUi("resources/w/ui/screen_journal.json", zipFile); portraitQuestJournalListRoot = loadLocalizedUi("resources/w/ui/portrait_screen_journal.json", zipFile); portraitQuestJournalItemRoot = loadLocalizedUi("resources/w/ui/portrait_screen_journal_item.json", zipFile); - mainMenuRoot = loadLocalizedUi("resources/w/ui/screen_main_menu.json", zipFile); + +#ifdef __ANDROID__ + mainMenuRoot = loadLocalizedUi("resources/w/ui/screen_main_menu_android.json", zipFile); + aboutScreenRoot = loadLocalizedUi("resources/w/ui/screen_about_android.json", zipFile); +#else + + mainMenuRoot = loadLocalizedUi("resources/w/ui/screen_main_menu.json", zipFile); aboutScreenRoot = loadLocalizedUi("resources/w/ui/screen_about.json", zipFile); - creditsScreenRoot = loadLocalizedUi("resources/w/ui/screen_credits.json", zipFile); +#endif + creditsScreenRoot = loadLocalizedUi("resources/w/ui/screen_credits.json", zipFile); + portraitCreditsScreenRoot = loadLocalizedUi("resources/w/ui/screen_credits_portrait.json", zipFile); settingsScreenRoot = loadLocalizedUi("resources/w/ui/screen_settings.json", zipFile); settingsGraphicsScreenRoot = loadLocalizedUi("resources/w/ui/screen_settings_graphics.json", zipFile); languageScreenRoot = loadLocalizedUi("resources/w/ui/screen_language.json", zipFile); @@ -488,8 +505,17 @@ namespace FRG { } void MenuManager::showCreditsScreen() { - uiManager.pushMenuFromSavedRoot(creditsScreenRoot); + isPlayerInCreditsMenu = true; + if (isPortraitMode()) + { + uiManager.pushMenuFromSavedRoot(portraitCreditsScreenRoot); + } + else + { + uiManager.pushMenuFromSavedRoot(creditsScreenRoot); + } uiManager.setButtonCallback("creditsBackButton", [this](const std::string&) { + isPlayerInCreditsMenu = false; uiManager.popMenu(); uiManager.updateAllLayouts(); audioPlayer_.playSoundAsync("audio/751089__smallconfusion__mechanical-plastic-click-11.ogg"); @@ -642,6 +668,9 @@ namespace FRG { refreshFullscreenToggle(); refreshShadowToggle(); +#ifdef __ANDROID__ + uiManager.setNodeVisible("fullScreenToggleButton", false); +#else uiManager.setTextButtonCallback("fullScreenToggleButton", [this, refreshFullscreenToggle](const std::string&) { Environment::setFullscreen(!Environment::isFullscreen); refreshFullscreenToggle(); @@ -649,6 +678,7 @@ namespace FRG { uiManager.updateAllLayouts(); topUiManager.updateAllLayouts(); }); +#endif uiManager.setTextButtonCallback("shadowToggleButton", [this, refreshShadowToggle](const std::string&) { bool newValue = !this->shadowsEnabled; @@ -2327,6 +2357,12 @@ namespace FRG { } void MenuManager::onOrientationChanged() { + if (isPlayerInCreditsMenu) { + uiManager.popMenu(); + showCreditsScreen(); + uiManager.updateAllLayouts(); + return; + } if (uiState_ == GameUiState::Inventory) { const int savedIndex = inventorySelectedIndex_; const bool wasOnItemDetail = (inventoryMenuStackDepth_ == 2); diff --git a/src/MenuManager.h b/src/MenuManager.h index e6caa1e..78ba100 100644 --- a/src/MenuManager.h +++ b/src/MenuManager.h @@ -202,6 +202,7 @@ namespace FRG { GameUiState uiState_ = GameUiState::Gameplay; Inventory* inventory = nullptr; + bool isPlayerInCreditsMenu = false; int inventorySelectedIndex_ = -1; int inventoryMenuStackDepth_ = 0; @@ -265,6 +266,8 @@ namespace FRG { std::shared_ptr mainMenuRoot; std::shared_ptr aboutScreenRoot; std::shared_ptr creditsScreenRoot; + std::shared_ptr portraitCreditsScreenRoot; + std::shared_ptr settingsScreenRoot; std::shared_ptr settingsGraphicsScreenRoot; std::shared_ptr languageScreenRoot; @@ -317,11 +320,11 @@ namespace FRG { // OFFSET_UP / OFFSET_DOWN = how far the FBO extends above / below screen center. // Height = UP + DOWN. Quad: y0 = projH/2 - DOWN, y1 = projH/2 + UP. static constexpr float CHAT_FBO_WIDTH_L = 469.0f; - static constexpr float CHAT_FBO_OFFSET_UP_L = 260.0f; + static constexpr float CHAT_FBO_OFFSET_UP_L = 240.0f; static constexpr float CHAT_FBO_OFFSET_DOWN_L = 70.0f; static constexpr float CHAT_FBO_WIDTH_P = 670.0f; - static constexpr float CHAT_FBO_OFFSET_UP_P = 360.0f; + static constexpr float CHAT_FBO_OFFSET_UP_P = 356.0f; static constexpr float CHAT_FBO_OFFSET_DOWN_P = 70.0f; std::unique_ptr chatFrameBuffer_; diff --git a/src/dialogue/DialogueOverlay.cpp b/src/dialogue/DialogueOverlay.cpp index f4cdde1..c1f5abd 100644 --- a/src/dialogue/DialogueOverlay.cpp +++ b/src/dialogue/DialogueOverlay.cpp @@ -30,10 +30,18 @@ bool DialogueOverlay::init(Renderer& renderer, const std::string& zipFile) { bodyRenderer = std::make_unique(); choiceRenderer = std::make_unique(); + portraitNameRenderer = std::make_unique(); + portraitBodyRenderer = std::make_unique(); + portraitChoiceRenderer = std::make_unique(); + return nameRenderer->init(renderer, "resources/fonts/DroidSans.ttf", 28, zipFile) && bodyRenderer->init(renderer, "resources/fonts/DroidSans.ttf", 24, zipFile) && - choiceRenderer->init(renderer, "resources/fonts/DroidSans.ttf", 22, zipFile); + choiceRenderer->init(renderer, "resources/fonts/DroidSans.ttf", 22, zipFile)&& + + portraitNameRenderer->init(renderer, "resources/fonts/DroidSans.ttf", 40, zipFile) && + portraitBodyRenderer->init(renderer, "resources/fonts/DroidSans.ttf", 36, zipFile) && + portraitChoiceRenderer->init(renderer, "resources/fonts/DroidSans.ttf", 36, zipFile); } void DialogueOverlay::update(const PresentationModel& model, int deltaMs) { @@ -215,8 +223,10 @@ void DialogueOverlay::drawPortrait(Renderer& renderer, const PresentationModel& const float H = Environment::projectionHeight; // Panel: DialogChoice001.png scaled to full screen width, aspect ratio preserved. - const float texAspect = static_cast(textboxChoicePortraitTexture->getWidth()) - / static_cast(textboxChoicePortraitTexture->getHeight()); + /*const float texAspect = static_cast(textboxChoicePortraitTexture->getWidth()) + / static_cast(textboxChoicePortraitTexture->getHeight());*/ + + const float texAspect = 4800.0f / 3568.0f; const float panelW = W; const float panelH = panelW / texAspect; const float clipAtBottom = 18.f; @@ -228,11 +238,11 @@ void DialogueOverlay::drawPortrait(Renderer& renderer, const PresentationModel& const float portraitY = panelTopY + 6.f - 40.f; // Text sits inside the panel near the top. - const float leftPad = 60.f; + const float leftPad = 68.f; const float rightPad = 60.f; const float textMaxWidth = W - leftPad - rightPad; const float nameY = panelTopY - 32.f - 50.f; - const float bodyY = nameY - 38.f; + const float bodyY = nameY - 48.f; // --- Rebuild quads only when geometry changes --- { @@ -282,25 +292,27 @@ void DialogueOverlay::drawPortrait(Renderer& renderer, const PresentationModel& lastChoiceRects.clear(); if (!model.speaker.empty()) { - nameRenderer->drawText(model.speaker, leftPad, nameY, 1.0f, false, { 1.0f, 0.88f, 0.45f, 1.0f }); + portraitNameRenderer->drawText(model.speaker, leftPad, nameY, 1.0f, false, { 1.0f, 0.88f, 0.45f, 1.0f }); } - const std::string wrappedBody = wrapTextToWidth(model.visibleText, *bodyRenderer, textMaxWidth, 1.0f); - bodyRenderer->drawText(wrappedBody, leftPad, bodyY, 1.0f, false, { 1.0f, 1.0f, 1.0f, 1.0f }); + const std::string wrappedBody = wrapTextToWidth(model.visibleText, *portraitBodyRenderer, textMaxWidth, 1.0f); + portraitBodyRenderer->drawText(wrappedBody, leftPad, bodyY, 1.0f, false, { 1.0f, 1.0f, 1.0f, 1.0f }); // Hit rect for tap-to-advance. lastDialogueAdvanceRect = { 0.f, 0.f, W, panelTopY }; // --- Choice mode: stack choices inside the panel --- if (model.mode == PresentationMode::Choice) { + /* const float choiceTexAspect = static_cast(choiceMainTexture->getWidth()) - / static_cast(choiceMainTexture->getHeight()); + / static_cast(choiceMainTexture->getHeight());*/ + const float choiceTexAspect = 3652.f / 484.f; const float choiceW = W - leftPad - rightPad + 32; const float choiceH = choiceW / choiceTexAspect; const float choiceSpacing = -18.f; const float totalChoicesH = (choiceH + choiceSpacing) * static_cast(model.choices.size()) - choiceSpacing; - const float choiceStartY = panelTopY - 80.f - totalChoicesH; // below name row + const float choiceStartY = panelTopY - 90.f - totalChoicesH; // below name row if (choiceQuads.size() < model.choices.size()) { choiceQuads.resize(model.choices.size()); @@ -339,8 +351,8 @@ void DialogueOverlay::drawPortrait(Renderer& renderer, const PresentationModel& : std::array{ 1.0f, 0.93f, 0.65f, 1.0f }; const std::string wrappedChoice = wrapTextToWidth(model.choices[i].text, *choiceRenderer, rect.w - 20.0f, 1.0f); - choiceRenderer->drawText( - wrappedChoice, rect.x + 20.f, rect.y + choiceH * 0.35f+5.f, 1.4f, false, + portraitChoiceRenderer->drawText( + wrappedChoice, rect.x + 28.f, rect.y + choiceH * 0.35f+5.f, 1.0f, false, isHighlighted ? std::array{1.0f, 1.0f, 1.0f, 1.0f} : color ); } diff --git a/src/dialogue/DialogueOverlay.h b/src/dialogue/DialogueOverlay.h index e02398d..5eeced6 100644 --- a/src/dialogue/DialogueOverlay.h +++ b/src/dialogue/DialogueOverlay.h @@ -43,6 +43,10 @@ private: std::unique_ptr bodyRenderer; std::unique_ptr choiceRenderer; + std::unique_ptr portraitNameRenderer; + std::unique_ptr portraitBodyRenderer; + std::unique_ptr portraitChoiceRenderer; + UiQuad portraitQuad; UiQuad textboxQuad; UiQuad textboxChoiceQuad;