-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathMarch22_script.lua
More file actions
118 lines (103 loc) · 3.2 KB
/
March22_script.lua
File metadata and controls
118 lines (103 loc) · 3.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
print("Loading March22_script.lua");
-- Index for current line of script (LUA STARTS AT 1, NOT ZERO BECAUSE THAT MAKES SENSE.)
March22.CURRENTLINE = 1;
-- Label machine always starts at imachine
March22.CURRENT_LABEL = "imachine";
March22.CURRENT_LABEL_POSITION = 1;
doNewLine = true;
-- switch for bigtext
-- 0 = show normal textbox/do nothing
-- 1 = show big textbox
-- 2 = show centered text, no box
March22.NVL_DISPLAY = 0;
-- Shorthand for ChangeLine(current+1)
-- Deprecated; too scared to remove it
function March22.NextLine()
March22.ChangeLine(March22.CURRENTLINE+1);
end
-- Changes line to specified number
-- Does not check if line doesn't exist, so be careful
function March22.ChangeLine(_number)
if March22.CURRENTLINE >= SIZE_OF_ACTIVE_SCRIPT then
-- EOF
March22.CURRENT_LABEL_POSITION = March22.CURRENT_LABEL_POSITION + 1;
LABELS[March22.CURRENT_LABEL][March22.CURRENT_LABEL_POSITION]();
else
March22.CURRENTLINE = March22.CURRENTLINE+1;
March22.ACTIVECHARACTER_NAME = ACTIVE_SCRIPT[March22.CURRENTLINE].speaker;
March22.ACTIVESPEECH = ACTIVE_SCRIPT[March22.CURRENTLINE].content;
March22.ACTIVECHARACTER_COLOR = ACTIVE_SCRIPT[March22.CURRENTLINE].color;
newlabel = false;
for k in pairs(LABEL_POSITIONS) do
if LABEL_POSITIONS[k] == March22.CURRENTLINE then
-- previous label has ended so terminate it
-- March22.CURRENT_LABEL = k;
March22.CURRENT_LABEL_POSITION = March22.CURRENT_LABEL_POSITION + 1;
LABELS[March22.CURRENT_LABEL][March22.CURRENT_LABEL_POSITION]();
newlabel = true;
end
end
if newlabel == false then
ACTIVE_SCRIPT[March22.CURRENTLINE].func();
end;
end
end
function March22.NewPage()
March22.currentPage = ""
March22.currentPageTypewriter = "";
March22.TypeWriterFrame = 0
March22.currentPage = "";
doNewLine = false;
end
-- Garbage collector for lpp-vita
-- Unloads loaded assets from (V)RAM
function March22.UnloadLoadedAssets()
--Unload backgrounds
for k in pairs(LOADEDBACKGROUNDS) do
if not (k == "black") then
if not (k == "white") then
Graphics.freeImage(LOADEDBACKGROUNDS[k]);
LOADEDBACKGROUNDS[k] = nil;
end
end
end
March22.ACTIVEBACKGROUND = nil;
--Unload SFX
for k in pairs(LOADEDSFX) do
Sound.close(LOADEDSFX[k]);
LOADEDSFX[k] = nil;
end
for k in pairs(LOADEDMUSIC) do
Sound.close(LOADEDMUSIC[k]);
LOADEDMUSIC[k] = nil;
end
--unload script label positions
for k in pairs(LABEL_POSITIONS) do
LABEL_POSITIONS[k] = nil;
end
--Unload current script
for k in pairs(ACTIVE_SCRIPT) do
ACTIVE_SCRIPT[k] = nil;
end
--Unload characters
for k in pairs(March22.CHARACTERS) do
for i in pairs(March22.CHARACTERS[k].sprites) do
Graphics.freeImage(March22.CHARACTERS[k].sprites[i]);
end
March22.CHARACTERS[k] = nil;
end
March22.ClearCharacter();
collectgarbage("collect")
collectgarbage()
end
-- Changes script to the specified one
-- Doesnt error check so no typos!
function March22.ChangeScript(_scriptname)
March22.UnloadLoadedAssets();
dofile("app0:/scripts/".._scriptname);
March22.CURRENTLINE = 1;
March22.ACTIVECHARACTER_NAME = ACTIVE_SCRIPT[1].speaker;
March22.ACTIVESPEECH = ACTIVE_SCRIPT[1].content;
March22.ACTIVECHARACTER_COLOR = ACTIVE_SCRIPT[1].color;
March22.ChangeLine();
end