2022-04-04 01:58:10 +02:00
|
|
|
require("common.class")
|
2022-04-05 06:36:11 +02:00
|
|
|
require("common.filereader")
|
2022-04-04 01:58:10 +02:00
|
|
|
require("common.gameconfig")
|
|
|
|
local Version = require("common.version")
|
2022-06-29 00:35:52 +02:00
|
|
|
local ServicePage = require("api.page.servicepage")
|
|
|
|
local ServiceField = require("api.page.servicefield")
|
2022-07-12 01:43:14 +02:00
|
|
|
local ListField = require("titlescreen.common.listfield")
|
|
|
|
local UpdateField = require("titlescreen.service.updatefield")
|
2022-04-04 01:58:10 +02:00
|
|
|
|
2022-04-05 06:36:11 +02:00
|
|
|
local function getGameLogValue(prefix, str)
|
|
|
|
local pattern = prefix .. ":%s*([^\r\n]*)"
|
|
|
|
return str:match(pattern)
|
|
|
|
end
|
|
|
|
|
2022-04-04 01:58:10 +02:00
|
|
|
---@class VersionInfoPage: ServicePage
|
2022-04-05 23:53:19 +02:00
|
|
|
local VersionInfoPage = {
|
2022-05-06 01:02:30 +02:00
|
|
|
__name = "VersionInfoPage",
|
2022-04-05 23:53:19 +02:00
|
|
|
}
|
2022-04-04 01:58:10 +02:00
|
|
|
|
|
|
|
---Create a new VersionInfoPage instance
|
2022-05-06 01:02:30 +02:00
|
|
|
---@param params? VersionInfoPage # initial parameters
|
2022-04-04 01:58:10 +02:00
|
|
|
---@return VersionInfoPage
|
2022-05-06 01:02:30 +02:00
|
|
|
function VersionInfoPage.new(params)
|
|
|
|
params = params or {}
|
2022-04-04 01:58:10 +02:00
|
|
|
|
2022-05-06 01:02:30 +02:00
|
|
|
params.title = params.title or "SYSTEM INFORMATION"
|
|
|
|
params.footer = params.footer or {
|
2022-04-04 01:58:10 +02:00
|
|
|
"START BUTTON = UPDATE",
|
|
|
|
"BACK BUTTON = EXIT"
|
|
|
|
}
|
2022-05-06 01:02:30 +02:00
|
|
|
params.selectedIndex = params.selectedIndex or 1
|
2022-04-11 18:47:26 +02:00
|
|
|
|
2022-05-06 01:02:30 +02:00
|
|
|
local self = CreateInstance(VersionInfoPage, params, ServicePage)
|
2022-04-04 01:58:10 +02:00
|
|
|
|
2022-04-25 22:22:11 +02:00
|
|
|
local logStr = ReadGameFile("log_usc-game.exe.txt") or ReadGameFile("log_usc-game.txt")
|
2022-04-05 06:36:11 +02:00
|
|
|
|
2022-04-27 02:40:22 +02:00
|
|
|
local list = ListField.new{selectedIndex = 2, locked = true}
|
|
|
|
list:addField(ServiceField.new{label = "SKIN ID CODE", value = Version.getLongVersion(), MARGIN = {0, 0, 0, 24}})
|
|
|
|
list:addField(UpdateField.new{label = "USC VERSION", value = getGameLogValue("Version", logStr)})
|
|
|
|
list:addField(ServiceField.new{label = "USC BRANCH", value = GameConfig["UpdateChannel"]})
|
|
|
|
list:addField(ServiceField.new{label = "USC GIT COMMIT", value = getGameLogValue("Git commit", logStr), MARGIN = {0, 0, 0, 24}})
|
|
|
|
list:addField(ServiceField.new{label = "GL VERSION", value = getGameLogValue("OpenGL Version", logStr)})
|
|
|
|
list:addField(ServiceField.new{label = "GLSL VERSION", value = getGameLogValue("OpenGL Shading Language Version", logStr)})
|
|
|
|
list:addField(ServiceField.new{label = "GL RENDERER", value = getGameLogValue("OpenGL Renderer", logStr)})
|
|
|
|
list:addField(ServiceField.new{label = "GL VENDOR", value = getGameLogValue("OpenGL Vendor", logStr)})
|
2022-04-15 04:54:30 +02:00
|
|
|
list:refreshFields()
|
|
|
|
|
2022-05-06 01:02:30 +02:00
|
|
|
self:addField(list)
|
|
|
|
self:refreshFields()
|
2022-04-15 04:54:30 +02:00
|
|
|
|
2022-05-06 01:02:30 +02:00
|
|
|
return self
|
2022-04-04 01:58:10 +02:00
|
|
|
end
|
|
|
|
|
2022-04-12 23:45:28 +02:00
|
|
|
---@param button integer # options are under the `game` table prefixed with `BUTTON`
|
2022-04-04 01:58:10 +02:00
|
|
|
function VersionInfoPage:handleButtonInput(button)
|
|
|
|
local field = self.content[self.selectedIndex]
|
|
|
|
if field and field.handleButtonInput then
|
2022-04-12 23:45:28 +02:00
|
|
|
if field:handleButtonInput(button) then
|
|
|
|
return
|
|
|
|
end
|
2022-04-04 01:58:10 +02:00
|
|
|
end
|
|
|
|
|
|
|
|
-- default behaviour
|
2022-04-12 23:45:28 +02:00
|
|
|
if button == game.BUTTON_BCK then
|
|
|
|
if self.viewHandler then
|
|
|
|
self.viewHandler:back()
|
2022-04-04 01:58:10 +02:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2022-04-05 23:53:19 +02:00
|
|
|
return VersionInfoPage
|