@@ -19,13 +19,41 @@ local DEBUG_GRID_FLAG = '-g'
1919local DEBUG_FULLSCREEN_FLAG = ' -f'
2020local DEBUG_WINDOWED_FLAG = ' -w'
2121
22+ local SCREENS = {
23+ bootloading = require ( ' src.ui.screens.BootLoadingScreen' ),
24+ mainmenu = require ( ' src.ui.screens.MainMenu' ),
25+ ingamemenu = require ( ' src.ui.screens.IngameCombatMenu' ),
26+ options = require ( ' src.ui.screens.OptionsScreen' ),
27+ changelog = require ( ' src.ui.screens.ChangelogScreen' ),
28+ combat = require ( ' src.ui.screens.CombatScreen' ),
29+ inventory = require ( ' src.ui.screens.InventoryScreen' ),
30+ help = require ( ' src.ui.screens.HelpScreen' ),
31+ gamescreen = require ( ' src.ui.screens.GameScreen' ),
32+ gameover = require ( ' src.ui.screens.GameOverScreen' ),
33+ loadgame = require ( ' src.ui.screens.SavegameScreen' ),
34+ confirm = require ( ' src.ui.screens.ConfirmationModal' ),
35+ information = require ( ' src.ui.screens.InformationModal' ),
36+ inputdialog = require ( ' src.ui.screens.InputDialog' ),
37+ maptest = require ( ' src.ui.screens.MapTest' ),
38+ mapeditor = require ( ' src.ui.screens.MapEditor' ),
39+ mapeditormenu = require ( ' src.ui.screens.MapEditorMenu' ),
40+ prefabeditor = require ( ' src.ui.screens.PrefabEditor' ),
41+ prefabeditormenu = require ( ' src.ui.screens.PrefabEditorMenu' ),
42+ editorloading = require ( ' src.ui.mapeditor.EditorLoadingScreen' ),
43+ keybindingeditor = require ( ' src.ui.screens.KeybindingScreen' ),
44+ keybindingmodal = require ( ' src.ui.screens.KeybindingModal' ),
45+ playerInfo = require ( ' src.ui.screens.PlayerInfo' ),
46+ }
47+
2248-- ------------------------------------------------
23- -- Callbacks
49+ -- Local Functions
2450-- ------------------------------------------------
2551
26- function love .load ( args )
27- Log .init ()
28-
52+ ---
53+ -- Iterates over any provided command line arguments and activates the proper
54+ -- mechanics.
55+ --
56+ local function handleCommandLineArguments ( args )
2957 for _ , arg in pairs ( args ) do
3058 if arg == DEBUG_OUTPUT_FLAG then
3159 Log .setDebugActive ( true )
@@ -37,7 +65,12 @@ function love.load( args )
3765 love .window .setFullscreen ( false )
3866 end
3967 end
68+ end
4069
70+ ---
71+ -- Prints some information about the game and the player's system.
72+ --
73+ local function printGameInfo ()
4174 local info = {}
4275 info [# info + 1 ] = " ==================="
4376 info [# info + 1 ] = string.format ( " Title: '%s'" , getTitle () )
@@ -56,43 +89,35 @@ function love.load( args )
5689 for _ , line in ipairs ( info ) do
5790 Log .print ( line )
5891 end
92+ end
93+
94+ -- ------------------------------------------------
95+ -- Callbacks
96+ -- ------------------------------------------------
97+
98+ function love .load ( args )
99+ Log .init ()
100+
101+ handleCommandLineArguments ( args )
59102
60- local screens = {
61- bootloading = require ( ' src.ui.screens.BootLoadingScreen' ),
62- mainmenu = require ( ' src.ui.screens.MainMenu' ),
63- ingamemenu = require ( ' src.ui.screens.IngameCombatMenu' ),
64- options = require ( ' src.ui.screens.OptionsScreen' ),
65- changelog = require ( ' src.ui.screens.ChangelogScreen' ),
66- combat = require ( ' src.ui.screens.CombatScreen' ),
67- inventory = require ( ' src.ui.screens.InventoryScreen' ),
68- help = require ( ' src.ui.screens.HelpScreen' ),
69- gamescreen = require ( ' src.ui.screens.GameScreen' ),
70- gameover = require ( ' src.ui.screens.GameOverScreen' ),
71- loadgame = require ( ' src.ui.screens.SavegameScreen' ),
72- confirm = require ( ' src.ui.screens.ConfirmationModal' ),
73- information = require ( ' src.ui.screens.InformationModal' ),
74- inputdialog = require ( ' src.ui.screens.InputDialog' ),
75- maptest = require ( ' src.ui.screens.MapTest' ),
76- mapeditor = require ( ' src.ui.screens.MapEditor' ),
77- mapeditormenu = require ( ' src.ui.screens.MapEditorMenu' ),
78- prefabeditor = require ( ' src.ui.screens.PrefabEditor' ),
79- prefabeditormenu = require ( ' src.ui.screens.PrefabEditorMenu' ),
80- editorloading = require ( ' src.ui.mapeditor.EditorLoadingScreen' ),
81- keybindingeditor = require ( ' src.ui.screens.KeybindingScreen' ),
82- keybindingmodal = require ( ' src.ui.screens.KeybindingModal' ),
83- playerInfo = require ( ' src.ui.screens.PlayerInfo' ),
84- }
85-
86- ScreenManager .init ( screens , ' bootloading' )
103+ printGameInfo ()
104+
105+ ScreenManager .init ( SCREENS , ' bootloading' )
87106
88107 letterbox = Letterbox ()
108+
109+ -- Create the actual debug grid, if the debug grid flag was set via command
110+ -- line arguments.
111+ if debugGrid then
112+ debugGrid = DebugGrid ()
113+ end
89114end
90115
91116function love .draw ()
92117 ScreenManager .draw ()
93118
94119 if debugGrid then
95- DebugGrid . draw ()
120+ debugGrid : draw ()
96121 end
97122
98123 letterbox .draw ()
@@ -202,6 +227,9 @@ function love.errhand( msg )
202227 p = string.gsub (p , " \t " , " " )
203228 p = string.gsub (p , " %[string \" (.-)\" %]" , " %1" )
204229
230+ -- Save a copy of the log to the crash dump folder.
231+ Log .saveCrashDump ()
232+
205233 local function draw ()
206234 local pos = love .window .toPixels (70 )
207235 love .graphics .clear (love .graphics .getBackgroundColor ())
0 commit comments