Fixing android bugs and more
This commit is contained in:
parent
5b21ba615e
commit
fc93eb6680
65
resources/w/ui/hud_step1android.json
Normal file
65
resources/w/ui/hud_step1android.json
Normal file
@ -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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
65
resources/w/ui/hud_step3android.json
Normal file
65
resources/w/ui/hud_step3android.json
Normal file
@ -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"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
resources/w/ui/img/Hint2android.png
(Stored with Git LFS)
Normal file
BIN
resources/w/ui/img/Hint2android.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
resources/w/ui/img/Hint4android.png
(Stored with Git LFS)
Normal file
BIN
resources/w/ui/img/Hint4android.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
resources/w/ui/img/journal/PortraitQuestJournalBkg002.png
(Stored with Git LFS)
BIN
resources/w/ui/img/journal/PortraitQuestJournalBkg002.png
(Stored with Git LFS)
Binary file not shown.
BIN
resources/w/ui/img/journal/PortraitQuestJournalItemBkg002.png
(Stored with Git LFS)
BIN
resources/w/ui/img/journal/PortraitQuestJournalItemBkg002.png
(Stored with Git LFS)
Binary file not shown.
BIN
resources/w/ui/img/main/aboutPage003android.png
(Stored with Git LFS)
Normal file
BIN
resources/w/ui/img/main/aboutPage003android.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
resources/w/ui/img/main/letters002android.png
(Stored with Git LFS)
Normal file
BIN
resources/w/ui/img/main/letters002android.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
resources/w/ui/img/phone/CharHeader001.png
(Stored with Git LFS)
BIN
resources/w/ui/img/phone/CharHeader001.png
(Stored with Git LFS)
Binary file not shown.
BIN
resources/w/ui/img/phone/CharHeader002.png
(Stored with Git LFS)
BIN
resources/w/ui/img/phone/CharHeader002.png
(Stored with Git LFS)
Binary file not shown.
BIN
resources/w/ui/img/phone/CharHeader003.png
(Stored with Git LFS)
BIN
resources/w/ui/img/phone/CharHeader003.png
(Stored with Git LFS)
Binary file not shown.
BIN
resources/w/ui/img/phone/ChatCoverTop002.png
(Stored with Git LFS)
Normal file
BIN
resources/w/ui/img/phone/ChatCoverTop002.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
resources/w/ui/img/phone/ChatListItem001.png
(Stored with Git LFS)
BIN
resources/w/ui/img/phone/ChatListItem001.png
(Stored with Git LFS)
Binary file not shown.
BIN
resources/w/ui/img/phone/ChatListItem002.png
(Stored with Git LFS)
BIN
resources/w/ui/img/phone/ChatListItem002.png
(Stored with Git LFS)
Binary file not shown.
BIN
resources/w/ui/img/phone/ChatListItem003.png
(Stored with Git LFS)
BIN
resources/w/ui/img/phone/ChatListItem003.png
(Stored with Git LFS)
Binary file not shown.
BIN
resources/w/ui/img/phone/PhoneChat001.png
(Stored with Git LFS)
BIN
resources/w/ui/img/phone/PhoneChat001.png
(Stored with Git LFS)
Binary file not shown.
BIN
resources/w/ui/img/phone/PhoneChatList001.png
(Stored with Git LFS)
BIN
resources/w/ui/img/phone/PhoneChatList001.png
(Stored with Git LFS)
Binary file not shown.
BIN
resources/w/ui/img/phone/bubble_in_center.png
(Stored with Git LFS)
BIN
resources/w/ui/img/phone/bubble_in_center.png
(Stored with Git LFS)
Binary file not shown.
BIN
resources/w/ui/img/phone/bubble_in_corner_left_bottom.png
(Stored with Git LFS)
BIN
resources/w/ui/img/phone/bubble_in_corner_left_bottom.png
(Stored with Git LFS)
Binary file not shown.
BIN
resources/w/ui/img/phone/bubble_in_corner_left_top.png
(Stored with Git LFS)
BIN
resources/w/ui/img/phone/bubble_in_corner_left_top.png
(Stored with Git LFS)
Binary file not shown.
BIN
resources/w/ui/img/phone/bubble_in_corner_right_bottom.png
(Stored with Git LFS)
BIN
resources/w/ui/img/phone/bubble_in_corner_right_bottom.png
(Stored with Git LFS)
Binary file not shown.
BIN
resources/w/ui/img/phone/bubble_in_corner_right_top.png
(Stored with Git LFS)
BIN
resources/w/ui/img/phone/bubble_in_corner_right_top.png
(Stored with Git LFS)
Binary file not shown.
BIN
resources/w/ui/img/phone/chat_top_cover001.png
(Stored with Git LFS)
BIN
resources/w/ui/img/phone/chat_top_cover001.png
(Stored with Git LFS)
Binary file not shown.
BIN
resources/w/ui/img/phone2/Phone002.png
(Stored with Git LFS)
BIN
resources/w/ui/img/phone2/Phone002.png
(Stored with Git LFS)
Binary file not shown.
@ -48,13 +48,13 @@
|
|||||||
{
|
{
|
||||||
"type": "StaticImage",
|
"type": "StaticImage",
|
||||||
"name": "chatTopCover",
|
"name": "chatTopCover",
|
||||||
"width": 638,
|
"width": 882,
|
||||||
"height": 101.25,
|
"height": 158,
|
||||||
"x": 0,
|
"x": 0,
|
||||||
"y": 536,
|
"y": 569,
|
||||||
"horizontal_gravity": "center",
|
"horizontal_gravity": "center",
|
||||||
"vertical_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",
|
"type": "TextButton",
|
||||||
@ -62,7 +62,7 @@
|
|||||||
"horizontal_gravity": "center",
|
"horizontal_gravity": "center",
|
||||||
"vertical_gravity": "center",
|
"vertical_gravity": "center",
|
||||||
"x": 0.0,
|
"x": 0.0,
|
||||||
"y": 424,
|
"y": 414,
|
||||||
"width": 638,
|
"width": 638,
|
||||||
"height": 112,
|
"height": 112,
|
||||||
"text": "Айпери",
|
"text": "Айпери",
|
||||||
|
|||||||
@ -48,13 +48,13 @@
|
|||||||
{
|
{
|
||||||
"type": "StaticImage",
|
"type": "StaticImage",
|
||||||
"name": "chatTopCover",
|
"name": "chatTopCover",
|
||||||
"width": 638,
|
"width": 882,
|
||||||
"height": 101.25,
|
"height": 158,
|
||||||
"x": 0,
|
"x": 0,
|
||||||
"y": 536,
|
"y": 569,
|
||||||
"horizontal_gravity": "center",
|
"horizontal_gravity": "center",
|
||||||
"vertical_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",
|
"type": "TextButton",
|
||||||
|
|||||||
@ -48,13 +48,13 @@
|
|||||||
{
|
{
|
||||||
"type": "StaticImage",
|
"type": "StaticImage",
|
||||||
"name": "chatTopCover",
|
"name": "chatTopCover",
|
||||||
"width": 638,
|
"width": 882,
|
||||||
"height": 101.25,
|
"height": 158,
|
||||||
"x": 0,
|
"x": 0,
|
||||||
"y": 536,
|
"y": 569,
|
||||||
"horizontal_gravity": "center",
|
"horizontal_gravity": "center",
|
||||||
"vertical_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",
|
"type": "TextButton",
|
||||||
|
|||||||
67
resources/w/ui/screen_about_android.json
Normal file
67
resources/w/ui/screen_about_android.json
Normal file
@ -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
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
359
resources/w/ui/screen_credits_portrait.json
Normal file
359
resources/w/ui/screen_credits_portrait.json
Normal file
@ -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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
127
resources/w/ui/screen_main_menu_android.json
Normal file
127
resources/w/ui/screen_main_menu_android.json
Normal file
@ -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
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -43,22 +43,13 @@
|
|||||||
"width": "match_parent",
|
"width": "match_parent",
|
||||||
"height": "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",
|
"type": "TextButton",
|
||||||
"name": "chatTitleButton",
|
"name": "chatTitleButton",
|
||||||
"horizontal_gravity": "center",
|
"horizontal_gravity": "center",
|
||||||
|
"vertical_gravity": "center",
|
||||||
"x": 0.0,
|
"x": 0.0,
|
||||||
"y": 20.0,
|
"y": 280.0,
|
||||||
"width": 446.25,
|
"width": 446.25,
|
||||||
"height": 78.4,
|
"height": 78.4,
|
||||||
"text": "Айпери",
|
"text": "Айпери",
|
||||||
|
|||||||
@ -43,22 +43,13 @@
|
|||||||
"width": "match_parent",
|
"width": "match_parent",
|
||||||
"height": "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",
|
"type": "TextButton",
|
||||||
"name": "chatTitleButton",
|
"name": "chatTitleButton",
|
||||||
"horizontal_gravity": "center",
|
"horizontal_gravity": "center",
|
||||||
|
"vertical_gravity": "center",
|
||||||
"x": 0.0,
|
"x": 0.0,
|
||||||
"y": 20.0,
|
"y": 280.0,
|
||||||
"width": 446.25,
|
"width": 446.25,
|
||||||
"height": 78.4,
|
"height": 78.4,
|
||||||
"text": "Атам",
|
"text": "Атам",
|
||||||
|
|||||||
@ -43,22 +43,13 @@
|
|||||||
"width": "match_parent",
|
"width": "match_parent",
|
||||||
"height": "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",
|
"type": "TextButton",
|
||||||
"name": "chatTitleButton",
|
"name": "chatTitleButton",
|
||||||
"horizontal_gravity": "center",
|
"horizontal_gravity": "center",
|
||||||
|
"vertical_gravity": "center",
|
||||||
"x": 0.0,
|
"x": 0.0,
|
||||||
"y": 20.0,
|
"y": 280.0,
|
||||||
"width": 446.25,
|
"width": 446.25,
|
||||||
"height": 78.4,
|
"height": 78.4,
|
||||||
"text": "БишкекНовости",
|
"text": "БишкекНовости",
|
||||||
|
|||||||
65
resources/w/ui_en/hud_step1android.json
Normal file
65
resources/w/ui_en/hud_step1android.json
Normal file
@ -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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
65
resources/w/ui_en/hud_step3android.json
Normal file
65
resources/w/ui_en/hud_step3android.json
Normal file
@ -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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
resources/w/ui_en/img/Hint2android.png
(Stored with Git LFS)
Normal file
BIN
resources/w/ui_en/img/Hint2android.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
resources/w/ui_en/img/Hint4android.png
(Stored with Git LFS)
Normal file
BIN
resources/w/ui_en/img/Hint4android.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
resources/w/ui_en/img/journal/PortraitQuestJournalBkg002.png
(Stored with Git LFS)
BIN
resources/w/ui_en/img/journal/PortraitQuestJournalBkg002.png
(Stored with Git LFS)
Binary file not shown.
BIN
resources/w/ui_en/img/journal/PortraitQuestJournalItemBkg002.png
(Stored with Git LFS)
BIN
resources/w/ui_en/img/journal/PortraitQuestJournalItemBkg002.png
(Stored with Git LFS)
Binary file not shown.
BIN
resources/w/ui_en/img/main/aboutPage003android.png
(Stored with Git LFS)
Normal file
BIN
resources/w/ui_en/img/main/aboutPage003android.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
resources/w/ui_en/img/main/letters002android.png
(Stored with Git LFS)
Normal file
BIN
resources/w/ui_en/img/main/letters002android.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
resources/w/ui_en/img/phone/PhoneChatList001.png
(Stored with Git LFS)
BIN
resources/w/ui_en/img/phone/PhoneChatList001.png
(Stored with Git LFS)
Binary file not shown.
BIN
resources/w/ui_en/img/phone2/Phone002.png
(Stored with Git LFS)
BIN
resources/w/ui_en/img/phone2/Phone002.png
(Stored with Git LFS)
Binary file not shown.
@ -48,13 +48,13 @@
|
|||||||
{
|
{
|
||||||
"type": "StaticImage",
|
"type": "StaticImage",
|
||||||
"name": "chatTopCover",
|
"name": "chatTopCover",
|
||||||
"width": 638,
|
"width": 882,
|
||||||
"height": 101.25,
|
"height": 158,
|
||||||
"x": 0,
|
"x": 0,
|
||||||
"y": 536,
|
"y": 569,
|
||||||
"horizontal_gravity": "center",
|
"horizontal_gravity": "center",
|
||||||
"vertical_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",
|
"type": "TextButton",
|
||||||
|
|||||||
@ -48,13 +48,13 @@
|
|||||||
{
|
{
|
||||||
"type": "StaticImage",
|
"type": "StaticImage",
|
||||||
"name": "chatTopCover",
|
"name": "chatTopCover",
|
||||||
"width": 638,
|
"width": 882,
|
||||||
"height": 101.25,
|
"height": 158,
|
||||||
"x": 0,
|
"x": 0,
|
||||||
"y": 536,
|
"y": 569,
|
||||||
"horizontal_gravity": "center",
|
"horizontal_gravity": "center",
|
||||||
"vertical_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",
|
"type": "TextButton",
|
||||||
|
|||||||
@ -48,13 +48,13 @@
|
|||||||
{
|
{
|
||||||
"type": "StaticImage",
|
"type": "StaticImage",
|
||||||
"name": "chatTopCover",
|
"name": "chatTopCover",
|
||||||
"width": 638,
|
"width": 882,
|
||||||
"height": 101.25,
|
"height": 158,
|
||||||
"x": 0,
|
"x": 0,
|
||||||
"y": 536,
|
"y": 569,
|
||||||
"horizontal_gravity": "center",
|
"horizontal_gravity": "center",
|
||||||
"vertical_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",
|
"type": "TextButton",
|
||||||
|
|||||||
67
resources/w/ui_en/screen_about_android.json
Normal file
67
resources/w/ui_en/screen_about_android.json
Normal file
@ -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
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
136
resources/w/ui_en/screen_main_menu_android.json
Normal file
136
resources/w/ui_en/screen_main_menu_android.json
Normal file
@ -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
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -57,8 +57,9 @@
|
|||||||
"type": "TextButton",
|
"type": "TextButton",
|
||||||
"name": "chatTitleButton",
|
"name": "chatTitleButton",
|
||||||
"horizontal_gravity": "center",
|
"horizontal_gravity": "center",
|
||||||
|
"vertical_gravity": "center",
|
||||||
"x": 0.0,
|
"x": 0.0,
|
||||||
"y": 20.0,
|
"y": 280.0,
|
||||||
"width": 446.25,
|
"width": 446.25,
|
||||||
"height": 78.4,
|
"height": 78.4,
|
||||||
"text": "Aiperi",
|
"text": "Aiperi",
|
||||||
|
|||||||
@ -43,22 +43,13 @@
|
|||||||
"width": "match_parent",
|
"width": "match_parent",
|
||||||
"height": "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",
|
"type": "TextButton",
|
||||||
"name": "chatTitleButton",
|
"name": "chatTitleButton",
|
||||||
"horizontal_gravity": "center",
|
"horizontal_gravity": "center",
|
||||||
|
"vertical_gravity": "center",
|
||||||
"x": 0.0,
|
"x": 0.0,
|
||||||
"y": 20.0,
|
"y": 280.0,
|
||||||
"width": 446.25,
|
"width": 446.25,
|
||||||
"height": 78.4,
|
"height": 78.4,
|
||||||
"text": "Dad",
|
"text": "Dad",
|
||||||
|
|||||||
@ -43,22 +43,13 @@
|
|||||||
"width": "match_parent",
|
"width": "match_parent",
|
||||||
"height": "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",
|
"type": "TextButton",
|
||||||
"name": "chatTitleButton",
|
"name": "chatTitleButton",
|
||||||
"horizontal_gravity": "center",
|
"horizontal_gravity": "center",
|
||||||
|
"vertical_gravity": "center",
|
||||||
"x": 0.0,
|
"x": 0.0,
|
||||||
"y": 20.0,
|
"y": 280.0,
|
||||||
"width": 446.25,
|
"width": 446.25,
|
||||||
"height": 78.4,
|
"height": 78.4,
|
||||||
"text": "Bishkek.News",
|
"text": "Bishkek.News",
|
||||||
|
|||||||
@ -160,9 +160,18 @@ namespace FRG {
|
|||||||
|
|
||||||
void MenuManager::loadUiRoots(const std::string& zipFile) {
|
void MenuManager::loadUiRoots(const std::string& zipFile) {
|
||||||
hudRoot = loadLocalizedUi("resources/w/ui/hud_step0.json", 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);
|
hudStep1Root = loadLocalizedUi("resources/w/ui/hud_step1.json", zipFile);
|
||||||
|
#endif
|
||||||
hudStep2Root = loadLocalizedUi("resources/w/ui/hud_step2.json", zipFile);
|
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);
|
hudStep3Root = loadLocalizedUi("resources/w/ui/hud_step3.json", zipFile);
|
||||||
|
#endif
|
||||||
hudStep4Root = loadLocalizedUi("resources/w/ui/hud_step4.json", zipFile);
|
hudStep4Root = loadLocalizedUi("resources/w/ui/hud_step4.json", zipFile);
|
||||||
hudStep5aRoot = loadLocalizedUi("resources/w/ui/hud_step5a.json", zipFile);
|
hudStep5aRoot = loadLocalizedUi("resources/w/ui/hud_step5a.json", zipFile);
|
||||||
hudStep5bRoot = loadLocalizedUi("resources/w/ui/hud_step5b.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);
|
questJournalRoot = loadLocalizedUi("resources/w/ui/screen_journal.json", zipFile);
|
||||||
portraitQuestJournalListRoot = loadLocalizedUi("resources/w/ui/portrait_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);
|
portraitQuestJournalItemRoot = loadLocalizedUi("resources/w/ui/portrait_screen_journal_item.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);
|
mainMenuRoot = loadLocalizedUi("resources/w/ui/screen_main_menu.json", zipFile);
|
||||||
aboutScreenRoot = loadLocalizedUi("resources/w/ui/screen_about.json", zipFile);
|
aboutScreenRoot = loadLocalizedUi("resources/w/ui/screen_about.json", zipFile);
|
||||||
|
#endif
|
||||||
creditsScreenRoot = loadLocalizedUi("resources/w/ui/screen_credits.json", zipFile);
|
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);
|
settingsScreenRoot = loadLocalizedUi("resources/w/ui/screen_settings.json", zipFile);
|
||||||
settingsGraphicsScreenRoot = loadLocalizedUi("resources/w/ui/screen_settings_graphics.json", zipFile);
|
settingsGraphicsScreenRoot = loadLocalizedUi("resources/w/ui/screen_settings_graphics.json", zipFile);
|
||||||
languageScreenRoot = loadLocalizedUi("resources/w/ui/screen_language.json", zipFile);
|
languageScreenRoot = loadLocalizedUi("resources/w/ui/screen_language.json", zipFile);
|
||||||
@ -488,8 +505,17 @@ namespace FRG {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void MenuManager::showCreditsScreen() {
|
void MenuManager::showCreditsScreen() {
|
||||||
|
isPlayerInCreditsMenu = true;
|
||||||
|
if (isPortraitMode())
|
||||||
|
{
|
||||||
|
uiManager.pushMenuFromSavedRoot(portraitCreditsScreenRoot);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
uiManager.pushMenuFromSavedRoot(creditsScreenRoot);
|
uiManager.pushMenuFromSavedRoot(creditsScreenRoot);
|
||||||
|
}
|
||||||
uiManager.setButtonCallback("creditsBackButton", [this](const std::string&) {
|
uiManager.setButtonCallback("creditsBackButton", [this](const std::string&) {
|
||||||
|
isPlayerInCreditsMenu = false;
|
||||||
uiManager.popMenu();
|
uiManager.popMenu();
|
||||||
uiManager.updateAllLayouts();
|
uiManager.updateAllLayouts();
|
||||||
audioPlayer_.playSoundAsync("audio/751089__smallconfusion__mechanical-plastic-click-11.ogg");
|
audioPlayer_.playSoundAsync("audio/751089__smallconfusion__mechanical-plastic-click-11.ogg");
|
||||||
@ -642,6 +668,9 @@ namespace FRG {
|
|||||||
refreshFullscreenToggle();
|
refreshFullscreenToggle();
|
||||||
refreshShadowToggle();
|
refreshShadowToggle();
|
||||||
|
|
||||||
|
#ifdef __ANDROID__
|
||||||
|
uiManager.setNodeVisible("fullScreenToggleButton", false);
|
||||||
|
#else
|
||||||
uiManager.setTextButtonCallback("fullScreenToggleButton", [this, refreshFullscreenToggle](const std::string&) {
|
uiManager.setTextButtonCallback("fullScreenToggleButton", [this, refreshFullscreenToggle](const std::string&) {
|
||||||
Environment::setFullscreen(!Environment::isFullscreen);
|
Environment::setFullscreen(!Environment::isFullscreen);
|
||||||
refreshFullscreenToggle();
|
refreshFullscreenToggle();
|
||||||
@ -649,6 +678,7 @@ namespace FRG {
|
|||||||
uiManager.updateAllLayouts();
|
uiManager.updateAllLayouts();
|
||||||
topUiManager.updateAllLayouts();
|
topUiManager.updateAllLayouts();
|
||||||
});
|
});
|
||||||
|
#endif
|
||||||
|
|
||||||
uiManager.setTextButtonCallback("shadowToggleButton", [this, refreshShadowToggle](const std::string&) {
|
uiManager.setTextButtonCallback("shadowToggleButton", [this, refreshShadowToggle](const std::string&) {
|
||||||
bool newValue = !this->shadowsEnabled;
|
bool newValue = !this->shadowsEnabled;
|
||||||
@ -2327,6 +2357,12 @@ namespace FRG {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void MenuManager::onOrientationChanged() {
|
void MenuManager::onOrientationChanged() {
|
||||||
|
if (isPlayerInCreditsMenu) {
|
||||||
|
uiManager.popMenu();
|
||||||
|
showCreditsScreen();
|
||||||
|
uiManager.updateAllLayouts();
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (uiState_ == GameUiState::Inventory) {
|
if (uiState_ == GameUiState::Inventory) {
|
||||||
const int savedIndex = inventorySelectedIndex_;
|
const int savedIndex = inventorySelectedIndex_;
|
||||||
const bool wasOnItemDetail = (inventoryMenuStackDepth_ == 2);
|
const bool wasOnItemDetail = (inventoryMenuStackDepth_ == 2);
|
||||||
|
|||||||
@ -202,6 +202,7 @@ namespace FRG {
|
|||||||
|
|
||||||
GameUiState uiState_ = GameUiState::Gameplay;
|
GameUiState uiState_ = GameUiState::Gameplay;
|
||||||
Inventory* inventory = nullptr;
|
Inventory* inventory = nullptr;
|
||||||
|
bool isPlayerInCreditsMenu = false;
|
||||||
int inventorySelectedIndex_ = -1;
|
int inventorySelectedIndex_ = -1;
|
||||||
|
|
||||||
int inventoryMenuStackDepth_ = 0;
|
int inventoryMenuStackDepth_ = 0;
|
||||||
@ -265,6 +266,8 @@ namespace FRG {
|
|||||||
std::shared_ptr<UiNode> mainMenuRoot;
|
std::shared_ptr<UiNode> mainMenuRoot;
|
||||||
std::shared_ptr<UiNode> aboutScreenRoot;
|
std::shared_ptr<UiNode> aboutScreenRoot;
|
||||||
std::shared_ptr<UiNode> creditsScreenRoot;
|
std::shared_ptr<UiNode> creditsScreenRoot;
|
||||||
|
std::shared_ptr<UiNode> portraitCreditsScreenRoot;
|
||||||
|
|
||||||
std::shared_ptr<UiNode> settingsScreenRoot;
|
std::shared_ptr<UiNode> settingsScreenRoot;
|
||||||
std::shared_ptr<UiNode> settingsGraphicsScreenRoot;
|
std::shared_ptr<UiNode> settingsGraphicsScreenRoot;
|
||||||
std::shared_ptr<UiNode> languageScreenRoot;
|
std::shared_ptr<UiNode> languageScreenRoot;
|
||||||
@ -317,11 +320,11 @@ namespace FRG {
|
|||||||
// OFFSET_UP / OFFSET_DOWN = how far the FBO extends above / below screen center.
|
// 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.
|
// 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_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_OFFSET_DOWN_L = 70.0f;
|
||||||
|
|
||||||
static constexpr float CHAT_FBO_WIDTH_P = 670.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;
|
static constexpr float CHAT_FBO_OFFSET_DOWN_P = 70.0f;
|
||||||
|
|
||||||
std::unique_ptr<FrameBuffer> chatFrameBuffer_;
|
std::unique_ptr<FrameBuffer> chatFrameBuffer_;
|
||||||
|
|||||||
@ -30,10 +30,18 @@ bool DialogueOverlay::init(Renderer& renderer, const std::string& zipFile) {
|
|||||||
bodyRenderer = std::make_unique<TextRenderer>();
|
bodyRenderer = std::make_unique<TextRenderer>();
|
||||||
choiceRenderer = std::make_unique<TextRenderer>();
|
choiceRenderer = std::make_unique<TextRenderer>();
|
||||||
|
|
||||||
|
portraitNameRenderer = std::make_unique<TextRenderer>();
|
||||||
|
portraitBodyRenderer = std::make_unique<TextRenderer>();
|
||||||
|
portraitChoiceRenderer = std::make_unique<TextRenderer>();
|
||||||
|
|
||||||
return
|
return
|
||||||
nameRenderer->init(renderer, "resources/fonts/DroidSans.ttf", 28, zipFile) &&
|
nameRenderer->init(renderer, "resources/fonts/DroidSans.ttf", 28, zipFile) &&
|
||||||
bodyRenderer->init(renderer, "resources/fonts/DroidSans.ttf", 24, 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) {
|
void DialogueOverlay::update(const PresentationModel& model, int deltaMs) {
|
||||||
@ -215,8 +223,10 @@ void DialogueOverlay::drawPortrait(Renderer& renderer, const PresentationModel&
|
|||||||
const float H = Environment::projectionHeight;
|
const float H = Environment::projectionHeight;
|
||||||
|
|
||||||
// Panel: DialogChoice001.png scaled to full screen width, aspect ratio preserved.
|
// Panel: DialogChoice001.png scaled to full screen width, aspect ratio preserved.
|
||||||
const float texAspect = static_cast<float>(textboxChoicePortraitTexture->getWidth())
|
/*const float texAspect = static_cast<float>(textboxChoicePortraitTexture->getWidth())
|
||||||
/ static_cast<float>(textboxChoicePortraitTexture->getHeight());
|
/ static_cast<float>(textboxChoicePortraitTexture->getHeight());*/
|
||||||
|
|
||||||
|
const float texAspect = 4800.0f / 3568.0f;
|
||||||
const float panelW = W;
|
const float panelW = W;
|
||||||
const float panelH = panelW / texAspect;
|
const float panelH = panelW / texAspect;
|
||||||
const float clipAtBottom = 18.f;
|
const float clipAtBottom = 18.f;
|
||||||
@ -228,11 +238,11 @@ void DialogueOverlay::drawPortrait(Renderer& renderer, const PresentationModel&
|
|||||||
const float portraitY = panelTopY + 6.f - 40.f;
|
const float portraitY = panelTopY + 6.f - 40.f;
|
||||||
|
|
||||||
// Text sits inside the panel near the top.
|
// 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 rightPad = 60.f;
|
||||||
const float textMaxWidth = W - leftPad - rightPad;
|
const float textMaxWidth = W - leftPad - rightPad;
|
||||||
const float nameY = panelTopY - 32.f - 50.f;
|
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 ---
|
// --- Rebuild quads only when geometry changes ---
|
||||||
{
|
{
|
||||||
@ -282,25 +292,27 @@ void DialogueOverlay::drawPortrait(Renderer& renderer, const PresentationModel&
|
|||||||
lastChoiceRects.clear();
|
lastChoiceRects.clear();
|
||||||
|
|
||||||
if (!model.speaker.empty()) {
|
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);
|
const std::string wrappedBody = wrapTextToWidth(model.visibleText, *portraitBodyRenderer, textMaxWidth, 1.0f);
|
||||||
bodyRenderer->drawText(wrappedBody, leftPad, bodyY, 1.0f, false, { 1.0f, 1.0f, 1.0f, 1.0f });
|
portraitBodyRenderer->drawText(wrappedBody, leftPad, bodyY, 1.0f, false, { 1.0f, 1.0f, 1.0f, 1.0f });
|
||||||
|
|
||||||
// Hit rect for tap-to-advance.
|
// Hit rect for tap-to-advance.
|
||||||
lastDialogueAdvanceRect = { 0.f, 0.f, W, panelTopY };
|
lastDialogueAdvanceRect = { 0.f, 0.f, W, panelTopY };
|
||||||
|
|
||||||
// --- Choice mode: stack choices inside the panel ---
|
// --- Choice mode: stack choices inside the panel ---
|
||||||
if (model.mode == PresentationMode::Choice) {
|
if (model.mode == PresentationMode::Choice) {
|
||||||
|
/*
|
||||||
const float choiceTexAspect = static_cast<float>(choiceMainTexture->getWidth())
|
const float choiceTexAspect = static_cast<float>(choiceMainTexture->getWidth())
|
||||||
/ static_cast<float>(choiceMainTexture->getHeight());
|
/ static_cast<float>(choiceMainTexture->getHeight());*/
|
||||||
|
const float choiceTexAspect = 3652.f / 484.f;
|
||||||
const float choiceW = W - leftPad - rightPad + 32;
|
const float choiceW = W - leftPad - rightPad + 32;
|
||||||
const float choiceH = choiceW / choiceTexAspect;
|
const float choiceH = choiceW / choiceTexAspect;
|
||||||
const float choiceSpacing = -18.f;
|
const float choiceSpacing = -18.f;
|
||||||
|
|
||||||
const float totalChoicesH = (choiceH + choiceSpacing) * static_cast<float>(model.choices.size()) - choiceSpacing;
|
const float totalChoicesH = (choiceH + choiceSpacing) * static_cast<float>(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()) {
|
if (choiceQuads.size() < model.choices.size()) {
|
||||||
choiceQuads.resize(model.choices.size());
|
choiceQuads.resize(model.choices.size());
|
||||||
@ -339,8 +351,8 @@ void DialogueOverlay::drawPortrait(Renderer& renderer, const PresentationModel&
|
|||||||
: std::array<float, 4>{ 1.0f, 0.93f, 0.65f, 1.0f };
|
: std::array<float, 4>{ 1.0f, 0.93f, 0.65f, 1.0f };
|
||||||
|
|
||||||
const std::string wrappedChoice = wrapTextToWidth(model.choices[i].text, *choiceRenderer, rect.w - 20.0f, 1.0f);
|
const std::string wrappedChoice = wrapTextToWidth(model.choices[i].text, *choiceRenderer, rect.w - 20.0f, 1.0f);
|
||||||
choiceRenderer->drawText(
|
portraitChoiceRenderer->drawText(
|
||||||
wrappedChoice, rect.x + 20.f, rect.y + choiceH * 0.35f+5.f, 1.4f, false,
|
wrappedChoice, rect.x + 28.f, rect.y + choiceH * 0.35f+5.f, 1.0f, false,
|
||||||
isHighlighted ? std::array<float, 4>{1.0f, 1.0f, 1.0f, 1.0f} : color
|
isHighlighted ? std::array<float, 4>{1.0f, 1.0f, 1.0f, 1.0f} : color
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -43,6 +43,10 @@ private:
|
|||||||
std::unique_ptr<TextRenderer> bodyRenderer;
|
std::unique_ptr<TextRenderer> bodyRenderer;
|
||||||
std::unique_ptr<TextRenderer> choiceRenderer;
|
std::unique_ptr<TextRenderer> choiceRenderer;
|
||||||
|
|
||||||
|
std::unique_ptr<TextRenderer> portraitNameRenderer;
|
||||||
|
std::unique_ptr<TextRenderer> portraitBodyRenderer;
|
||||||
|
std::unique_ptr<TextRenderer> portraitChoiceRenderer;
|
||||||
|
|
||||||
UiQuad portraitQuad;
|
UiQuad portraitQuad;
|
||||||
UiQuad textboxQuad;
|
UiQuad textboxQuad;
|
||||||
UiQuad textboxChoiceQuad;
|
UiQuad textboxChoiceQuad;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user