paletes
This commit is contained in:
@@ -21,6 +21,17 @@ assets:
|
|||||||
palettes:
|
palettes:
|
||||||
PALETTE:
|
PALETTE:
|
||||||
- ${PREFIX}/data/palette/cpc.pal
|
- ${PREFIX}/data/palette/cpc.pal
|
||||||
|
- ${PREFIX}/data/palette/carnival-32.pal
|
||||||
|
- ${PREFIX}/data/palette/cpc-boy.pal
|
||||||
|
- ${PREFIX}/data/palette/downgraded-32.pal
|
||||||
|
- ${PREFIX}/data/palette/endesga-32.pal
|
||||||
|
- ${PREFIX}/data/palette/fantasy.pal
|
||||||
|
- ${PREFIX}/data/palette/mulfok32.pal
|
||||||
|
- ${PREFIX}/data/palette/nanner-pancakes.pal
|
||||||
|
- ${PREFIX}/data/palette/pico-8-secret-palette.pal
|
||||||
|
- ${PREFIX}/data/palette/pineapple-32.pal
|
||||||
|
- ${PREFIX}/data/palette/resurrect-32.pal
|
||||||
|
- ${PREFIX}/data/palette/sheltzy32.pal
|
||||||
|
|
||||||
# LOCALE
|
# LOCALE
|
||||||
locale:
|
locale:
|
||||||
|
|||||||
35
data/palette/carnival-32.pal
Normal file
35
data/palette/carnival-32.pal
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
JASC-PAL
|
||||||
|
0100
|
||||||
|
32
|
||||||
|
77 34 53
|
||||||
|
113 40 42
|
||||||
|
151 86 56
|
||||||
|
208 118 62
|
||||||
|
235 172 77
|
||||||
|
242 208 141
|
||||||
|
221 172 136
|
||||||
|
198 141 128
|
||||||
|
175 109 119
|
||||||
|
199 68 70
|
||||||
|
159 56 71
|
||||||
|
110 64 109
|
||||||
|
167 167 88
|
||||||
|
113 129 65
|
||||||
|
73 101 65
|
||||||
|
55 67 59
|
||||||
|
42 28 49
|
||||||
|
66 49 87
|
||||||
|
77 82 138
|
||||||
|
85 106 151
|
||||||
|
92 129 163
|
||||||
|
125 173 200
|
||||||
|
176 214 217
|
||||||
|
236 230 223
|
||||||
|
207 204 202
|
||||||
|
166 166 166
|
||||||
|
120 120 120
|
||||||
|
98 98 98
|
||||||
|
74 74 74
|
||||||
|
54 54 54
|
||||||
|
97 140 112
|
||||||
|
139 116 99
|
||||||
35
data/palette/cpc-boy.pal
Normal file
35
data/palette/cpc-boy.pal
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
JASC-PAL
|
||||||
|
0100
|
||||||
|
32
|
||||||
|
0 0 0
|
||||||
|
27 27 101
|
||||||
|
53 53 201
|
||||||
|
102 30 37
|
||||||
|
85 51 97
|
||||||
|
127 53 201
|
||||||
|
188 53 53
|
||||||
|
192 70 110
|
||||||
|
223 109 155
|
||||||
|
27 101 27
|
||||||
|
27 110 131
|
||||||
|
30 121 229
|
||||||
|
121 95 27
|
||||||
|
128 128 128
|
||||||
|
145 148 223
|
||||||
|
201 127 53
|
||||||
|
227 155 141
|
||||||
|
248 120 248
|
||||||
|
53 175 53
|
||||||
|
53 183 143
|
||||||
|
53 193 215
|
||||||
|
127 201 53
|
||||||
|
173 200 170
|
||||||
|
141 225 199
|
||||||
|
225 198 67
|
||||||
|
228 221 154
|
||||||
|
255 255 255
|
||||||
|
238 234 224
|
||||||
|
172 181 107
|
||||||
|
118 132 72
|
||||||
|
63 80 63
|
||||||
|
36 49 55
|
||||||
35
data/palette/downgraded-32.pal
Normal file
35
data/palette/downgraded-32.pal
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
JASC-PAL
|
||||||
|
0100
|
||||||
|
32
|
||||||
|
123 51 76
|
||||||
|
161 77 85
|
||||||
|
199 115 105
|
||||||
|
227 160 132
|
||||||
|
242 203 155
|
||||||
|
211 123 134
|
||||||
|
175 93 139
|
||||||
|
128 64 133
|
||||||
|
91 51 116
|
||||||
|
65 32 81
|
||||||
|
92 72 106
|
||||||
|
136 125 141
|
||||||
|
184 180 178
|
||||||
|
220 218 201
|
||||||
|
255 255 224
|
||||||
|
182 245 219
|
||||||
|
137 217 217
|
||||||
|
114 182 207
|
||||||
|
92 139 168
|
||||||
|
78 102 121
|
||||||
|
70 73 105
|
||||||
|
68 53 93
|
||||||
|
61 0 61
|
||||||
|
98 23 72
|
||||||
|
148 44 75
|
||||||
|
199 66 79
|
||||||
|
224 107 81
|
||||||
|
242 165 97
|
||||||
|
252 239 141
|
||||||
|
177 212 128
|
||||||
|
128 184 120
|
||||||
|
101 141 120
|
||||||
35
data/palette/endesga-32.pal
Normal file
35
data/palette/endesga-32.pal
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
JASC-PAL
|
||||||
|
0100
|
||||||
|
32
|
||||||
|
190 74 47
|
||||||
|
215 118 67
|
||||||
|
234 212 170
|
||||||
|
228 166 114
|
||||||
|
184 111 80
|
||||||
|
115 62 57
|
||||||
|
62 39 49
|
||||||
|
162 38 51
|
||||||
|
228 59 68
|
||||||
|
247 118 34
|
||||||
|
254 174 52
|
||||||
|
254 231 97
|
||||||
|
99 199 77
|
||||||
|
62 137 72
|
||||||
|
38 92 66
|
||||||
|
25 60 62
|
||||||
|
18 78 137
|
||||||
|
0 153 219
|
||||||
|
44 232 245
|
||||||
|
255 255 255
|
||||||
|
192 203 220
|
||||||
|
139 155 180
|
||||||
|
90 105 136
|
||||||
|
58 68 102
|
||||||
|
38 43 68
|
||||||
|
24 20 37
|
||||||
|
255 0 68
|
||||||
|
104 56 108
|
||||||
|
181 80 136
|
||||||
|
246 117 122
|
||||||
|
232 183 150
|
||||||
|
194 133 105
|
||||||
35
data/palette/fantasy.pal
Normal file
35
data/palette/fantasy.pal
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
JASC-PAL
|
||||||
|
0100
|
||||||
|
32
|
||||||
|
237 228 218
|
||||||
|
191 184 180
|
||||||
|
145 141 141
|
||||||
|
99 97 103
|
||||||
|
53 53 64
|
||||||
|
169 73 73
|
||||||
|
202 89 84
|
||||||
|
229 111 75
|
||||||
|
227 147 71
|
||||||
|
238 181 81
|
||||||
|
232 198 91
|
||||||
|
189 163 81
|
||||||
|
139 145 80
|
||||||
|
85 125 85
|
||||||
|
68 99 80
|
||||||
|
62 85 76
|
||||||
|
139 176 173
|
||||||
|
118 159 166
|
||||||
|
102 141 169
|
||||||
|
92 105 159
|
||||||
|
90 88 136
|
||||||
|
124 109 162
|
||||||
|
148 122 157
|
||||||
|
188 135 165
|
||||||
|
217 166 166
|
||||||
|
212 194 182
|
||||||
|
189 170 151
|
||||||
|
134 115 91
|
||||||
|
126 103 76
|
||||||
|
115 91 66
|
||||||
|
96 75 61
|
||||||
|
77 63 56
|
||||||
35
data/palette/mulfok32.pal
Normal file
35
data/palette/mulfok32.pal
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
JASC-PAL
|
||||||
|
0100
|
||||||
|
32
|
||||||
|
91 166 117
|
||||||
|
107 201 108
|
||||||
|
171 221 100
|
||||||
|
252 239 141
|
||||||
|
255 184 121
|
||||||
|
234 98 98
|
||||||
|
204 66 94
|
||||||
|
163 40 88
|
||||||
|
117 23 86
|
||||||
|
57 9 71
|
||||||
|
97 24 81
|
||||||
|
135 53 85
|
||||||
|
166 85 95
|
||||||
|
201 115 115
|
||||||
|
242 174 153
|
||||||
|
255 195 242
|
||||||
|
238 143 203
|
||||||
|
212 110 179
|
||||||
|
135 62 132
|
||||||
|
31 16 42
|
||||||
|
74 48 82
|
||||||
|
123 84 128
|
||||||
|
166 133 159
|
||||||
|
217 189 200
|
||||||
|
255 255 255
|
||||||
|
174 226 255
|
||||||
|
141 183 255
|
||||||
|
109 128 250
|
||||||
|
132 101 236
|
||||||
|
131 77 196
|
||||||
|
125 45 160
|
||||||
|
78 24 124
|
||||||
35
data/palette/nanner-pancakes.pal
Normal file
35
data/palette/nanner-pancakes.pal
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
JASC-PAL
|
||||||
|
0100
|
||||||
|
32
|
||||||
|
160 221 211
|
||||||
|
111 176 183
|
||||||
|
87 127 157
|
||||||
|
74 87 134
|
||||||
|
62 59 102
|
||||||
|
57 41 69
|
||||||
|
45 30 47
|
||||||
|
69 46 63
|
||||||
|
93 69 80
|
||||||
|
123 98 104
|
||||||
|
156 128 126
|
||||||
|
195 167 156
|
||||||
|
219 201 180
|
||||||
|
252 236 209
|
||||||
|
170 215 149
|
||||||
|
100 176 130
|
||||||
|
72 136 133
|
||||||
|
63 91 116
|
||||||
|
235 200 167
|
||||||
|
211 160 132
|
||||||
|
184 126 108
|
||||||
|
143 82 82
|
||||||
|
106 57 72
|
||||||
|
197 127 121
|
||||||
|
171 89 125
|
||||||
|
124 61 100
|
||||||
|
78 43 69
|
||||||
|
122 59 79
|
||||||
|
169 75 84
|
||||||
|
216 114 94
|
||||||
|
240 159 113
|
||||||
|
247 207 145
|
||||||
35
data/palette/pico-8-secret-palette.pal
Normal file
35
data/palette/pico-8-secret-palette.pal
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
JASC-PAL
|
||||||
|
0100
|
||||||
|
32
|
||||||
|
0 0 0
|
||||||
|
29 43 83
|
||||||
|
126 37 83
|
||||||
|
0 135 81
|
||||||
|
171 82 54
|
||||||
|
95 87 79
|
||||||
|
194 195 199
|
||||||
|
255 241 232
|
||||||
|
255 0 77
|
||||||
|
255 163 0
|
||||||
|
255 236 39
|
||||||
|
0 228 54
|
||||||
|
41 173 255
|
||||||
|
131 118 156
|
||||||
|
255 119 168
|
||||||
|
255 204 170
|
||||||
|
41 24 20
|
||||||
|
17 29 53
|
||||||
|
66 33 54
|
||||||
|
18 83 89
|
||||||
|
116 47 41
|
||||||
|
73 51 59
|
||||||
|
162 136 121
|
||||||
|
243 239 125
|
||||||
|
190 18 80
|
||||||
|
255 108 36
|
||||||
|
168 231 46
|
||||||
|
0 181 67
|
||||||
|
6 90 181
|
||||||
|
117 70 101
|
||||||
|
255 110 89
|
||||||
|
255 157 129
|
||||||
35
data/palette/pineapple-32.pal
Normal file
35
data/palette/pineapple-32.pal
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
JASC-PAL
|
||||||
|
0100
|
||||||
|
32
|
||||||
|
67 0 42
|
||||||
|
137 0 39
|
||||||
|
217 36 60
|
||||||
|
255 97 87
|
||||||
|
255 183 98
|
||||||
|
199 110 70
|
||||||
|
115 57 46
|
||||||
|
52 17 31
|
||||||
|
3 7 16
|
||||||
|
39 59 45
|
||||||
|
69 130 57
|
||||||
|
156 185 59
|
||||||
|
255 216 50
|
||||||
|
255 130 59
|
||||||
|
209 64 31
|
||||||
|
124 25 26
|
||||||
|
49 12 27
|
||||||
|
131 63 52
|
||||||
|
235 156 110
|
||||||
|
255 218 172
|
||||||
|
255 255 228
|
||||||
|
191 195 198
|
||||||
|
109 138 141
|
||||||
|
41 59 73
|
||||||
|
4 21 40
|
||||||
|
3 62 94
|
||||||
|
28 146 167
|
||||||
|
119 214 193
|
||||||
|
255 224 220
|
||||||
|
255 136 169
|
||||||
|
192 59 148
|
||||||
|
96 23 97
|
||||||
35
data/palette/resurrect-32.pal
Normal file
35
data/palette/resurrect-32.pal
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
JASC-PAL
|
||||||
|
0100
|
||||||
|
32
|
||||||
|
255 255 255
|
||||||
|
251 107 29
|
||||||
|
232 59 59
|
||||||
|
131 28 93
|
||||||
|
195 36 84
|
||||||
|
240 79 120
|
||||||
|
246 129 129
|
||||||
|
252 167 144
|
||||||
|
227 200 150
|
||||||
|
171 148 122
|
||||||
|
150 108 108
|
||||||
|
98 85 101
|
||||||
|
62 53 70
|
||||||
|
11 94 101
|
||||||
|
11 138 143
|
||||||
|
30 188 115
|
||||||
|
145 219 105
|
||||||
|
251 255 134
|
||||||
|
251 185 84
|
||||||
|
205 104 61
|
||||||
|
158 69 57
|
||||||
|
122 48 69
|
||||||
|
107 62 117
|
||||||
|
144 94 169
|
||||||
|
168 132 243
|
||||||
|
234 173 237
|
||||||
|
143 211 255
|
||||||
|
77 155 230
|
||||||
|
77 101 180
|
||||||
|
72 74 119
|
||||||
|
48 225 185
|
||||||
|
143 248 226
|
||||||
35
data/palette/sheltzy32.pal
Normal file
35
data/palette/sheltzy32.pal
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
JASC-PAL
|
||||||
|
0100
|
||||||
|
32
|
||||||
|
140 255 222
|
||||||
|
69 184 179
|
||||||
|
131 151 64
|
||||||
|
201 236 133
|
||||||
|
70 198 87
|
||||||
|
21 137 104
|
||||||
|
44 91 109
|
||||||
|
34 42 92
|
||||||
|
86 106 137
|
||||||
|
139 171 191
|
||||||
|
204 226 225
|
||||||
|
255 219 165
|
||||||
|
204 172 104
|
||||||
|
163 109 62
|
||||||
|
104 60 52
|
||||||
|
0 0 0
|
||||||
|
56 0 44
|
||||||
|
102 59 147
|
||||||
|
139 114 222
|
||||||
|
156 216 252
|
||||||
|
94 150 221
|
||||||
|
57 83 192
|
||||||
|
128 12 83
|
||||||
|
195 75 145
|
||||||
|
255 148 179
|
||||||
|
189 31 63
|
||||||
|
236 97 74
|
||||||
|
255 164 104
|
||||||
|
255 246 174
|
||||||
|
255 218 112
|
||||||
|
244 176 60
|
||||||
|
255 255 255
|
||||||
Binary file not shown.
Binary file not shown.
|
Before Width: | Height: | Size: 324 B After Width: | Height: | Size: 324 B |
@@ -1,7 +1,4 @@
|
|||||||
# THE JAIL
|
|
||||||
room:
|
room:
|
||||||
name_en: "THE JAIL"
|
|
||||||
name_ca: "LA JAIL"
|
|
||||||
bgColor: bright_blue
|
bgColor: bright_blue
|
||||||
border: blue
|
border: blue
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# ROAD TO THE JAIL
|
|
||||||
room:
|
room:
|
||||||
name_en: "ROAD TO THE JAIL"
|
|
||||||
name_ca: "CAMI A LA JAIL"
|
|
||||||
bgColor: black
|
bgColor: black
|
||||||
border: blue
|
border: blue
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# VOID MAIN
|
|
||||||
room:
|
room:
|
||||||
name_ca: "VOID MAIN"
|
|
||||||
name_en: "VOID MAIN"
|
|
||||||
bgColor: black
|
bgColor: black
|
||||||
border: bright_black
|
border: bright_black
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# JUMP THROUGH
|
|
||||||
room:
|
room:
|
||||||
name_en: "JUMP THROUGH"
|
|
||||||
name_ca: "SALTA A TRAVES"
|
|
||||||
bgColor: black
|
bgColor: black
|
||||||
border: cyan
|
border: cyan
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# BIG JUMP
|
|
||||||
room:
|
room:
|
||||||
name_en: "BIG JUMP"
|
|
||||||
name_ca: "EL GRAN BOT"
|
|
||||||
bgColor: black
|
bgColor: black
|
||||||
border: red
|
border: red
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# WELCOME TO MY ABBEY
|
|
||||||
room:
|
room:
|
||||||
name_en: "WELCOME TO MY ABBEY"
|
|
||||||
name_ca: "BENVINGUT A LA MEUA ABADIA"
|
|
||||||
bgColor: blue
|
bgColor: blue
|
||||||
border: yellow
|
border: yellow
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# SIGMASUA > TELEGRAM
|
|
||||||
room:
|
room:
|
||||||
name_en: "SIGMASUA > TELEGRAM"
|
|
||||||
name_ca: "SIGMASUA > TELEGRAM"
|
|
||||||
bgColor: black
|
bgColor: black
|
||||||
border: blue
|
border: blue
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# THE GARDEN
|
|
||||||
room:
|
room:
|
||||||
name_en: "THE GARDEN"
|
|
||||||
name_ca: "EL JARDI"
|
|
||||||
bgColor: black
|
bgColor: black
|
||||||
border: cyan
|
border: cyan
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# THE BIG TREE
|
|
||||||
room:
|
room:
|
||||||
name_en: "THE BIG TREE"
|
|
||||||
name_ca: "EL GRAN ARBRE"
|
|
||||||
bgColor: black
|
bgColor: black
|
||||||
border: bright_blue
|
border: bright_blue
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# TREE TOP
|
|
||||||
room:
|
room:
|
||||||
name_en: "TREE TOP"
|
|
||||||
name_ca: "DALT DE L'ARBRE"
|
|
||||||
bgColor: bright_black
|
bgColor: bright_black
|
||||||
border: blue
|
border: blue
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# LAZY ROOM
|
|
||||||
room:
|
room:
|
||||||
name_en: "LAZY ROOM"
|
|
||||||
name_ca: "LA SALA GOSSA"
|
|
||||||
bgColor: black
|
bgColor: black
|
||||||
border: blue
|
border: blue
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# THE PASSAGE
|
|
||||||
room:
|
room:
|
||||||
name_en: "THE PASSAGE"
|
|
||||||
name_ca: "EL PASSATGE"
|
|
||||||
bgColor: black
|
bgColor: black
|
||||||
border: green
|
border: green
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# TUNO KILLER
|
|
||||||
room:
|
room:
|
||||||
name_en: "TUNO KILLER"
|
|
||||||
name_ca: "MATATUNOS"
|
|
||||||
bgColor: black
|
bgColor: black
|
||||||
border: blue
|
border: blue
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# KILLING SPREE
|
|
||||||
room:
|
room:
|
||||||
name_en: "KILLING SPREE"
|
|
||||||
name_ca: "MATANÇA INDISCRIMINADA"
|
|
||||||
bgColor: black
|
bgColor: black
|
||||||
border: blue
|
border: blue
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# NOW THIS IS THE BATCAVE!
|
|
||||||
room:
|
room:
|
||||||
name_en: "NOW THIS IS THE BATCAVE!"
|
|
||||||
name_ca: "ESTA SI QUE ES LA BATCOVA!"
|
|
||||||
bgColor: black
|
bgColor: black
|
||||||
border: black
|
border: black
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# THE FRIDGE
|
|
||||||
room:
|
room:
|
||||||
name_en: "THE FRIDGE"
|
|
||||||
name_ca: "EL FRIGO"
|
|
||||||
bgColor: blue
|
bgColor: blue
|
||||||
border: blue
|
border: blue
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# I DID NOT COPY THIS ONE
|
|
||||||
room:
|
room:
|
||||||
name_en: "I DID NOT COPY THIS ONE"
|
|
||||||
name_ca: "ESTA NO LA HE COPIADA"
|
|
||||||
bgColor: black
|
bgColor: black
|
||||||
border: magenta
|
border: magenta
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# MAKE MONEY
|
|
||||||
room:
|
room:
|
||||||
name_en: "MAKE MONEY"
|
|
||||||
name_ca: "INHERITEDS!"
|
|
||||||
bgColor: black
|
bgColor: black
|
||||||
border: yellow
|
border: yellow
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# THIS CAN'T BE THE BATCAVE
|
|
||||||
room:
|
room:
|
||||||
name_en: "THIS CAN'T BE THE BATCAVE"
|
|
||||||
name_ca: "ESTA NO POT SER LA BATCOVA"
|
|
||||||
bgColor: black
|
bgColor: black
|
||||||
border: cyan
|
border: cyan
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# ENTRANCE TO THE VALLEY
|
|
||||||
room:
|
room:
|
||||||
name_en: "ENTRANCE TO THE VALLEY"
|
|
||||||
name_ca: "ENTRADA A LA VALL"
|
|
||||||
bgColor: black
|
bgColor: black
|
||||||
border: red
|
border: red
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# ENTER PAKU SIMBEL
|
|
||||||
room:
|
room:
|
||||||
name_en: "ENTER PAKU SIMBEL"
|
|
||||||
name_ca: "ACCEDINT A PAKU SIMBEL"
|
|
||||||
bgColor: bright_black
|
bgColor: bright_black
|
||||||
border: yellow
|
border: yellow
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# AEE REMAKE, PLEASE
|
|
||||||
room:
|
room:
|
||||||
name_en: "AEE REMAKE, PLEASE"
|
|
||||||
name_ca: "AEE REMAKE, PERFAPLIS"
|
|
||||||
bgColor: bright_black
|
bgColor: bright_black
|
||||||
border: yellow
|
border: yellow
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# INNER CHAMBER
|
|
||||||
room:
|
room:
|
||||||
name_en: "INNER CHAMBER"
|
|
||||||
name_ca: "CAMBRA INTERIOR"
|
|
||||||
bgColor: black
|
bgColor: black
|
||||||
border: bright_yellow
|
border: bright_yellow
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# PLAY IT AGAIN, SAM
|
|
||||||
room:
|
room:
|
||||||
name_en: "PLAY IT AGAIN, SAM"
|
|
||||||
name_ca: "TORNA-LA A TOCAR, SAM"
|
|
||||||
bgColor: black
|
bgColor: black
|
||||||
border: bright_yellow
|
border: bright_yellow
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# THE CHAPPEL
|
|
||||||
room:
|
room:
|
||||||
name_en: "THE CHAPPEL"
|
|
||||||
name_ca: "LA CAPELLA"
|
|
||||||
bgColor: blue
|
bgColor: blue
|
||||||
border: yellow
|
border: yellow
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# JINGLE BELLS
|
|
||||||
room:
|
room:
|
||||||
name_en: "JINGLE BELLS"
|
|
||||||
name_ca: "CAMPANETES"
|
|
||||||
bgColor: blue
|
bgColor: blue
|
||||||
border: yellow
|
border: yellow
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# THE BACKYARD
|
|
||||||
room:
|
room:
|
||||||
name_en: "THE BACKYARD"
|
|
||||||
name_ca: "EL PATI DE DARRERE"
|
|
||||||
bgColor: blue
|
bgColor: blue
|
||||||
border: cyan
|
border: cyan
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# YOU SHALL NOT PASS
|
|
||||||
room:
|
room:
|
||||||
name_en: "YOU SHALL NOT PASS"
|
|
||||||
name_ca: "NO PASSARAS"
|
|
||||||
bgColor: bright_black
|
bgColor: bright_black
|
||||||
border: black
|
border: black
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# QUO VOIDIS
|
|
||||||
room:
|
room:
|
||||||
name_en: "QUO VOIDIS"
|
|
||||||
name_ca: "QUO VOIDIS"
|
|
||||||
bgColor: blue
|
bgColor: blue
|
||||||
border: bright_black
|
border: bright_black
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# QVOID IS A JAILGAME!
|
|
||||||
room:
|
room:
|
||||||
name_en: "QVOID IS A JAILGAME!"
|
|
||||||
name_ca: "QVOID ES UN JAILGAME!"
|
|
||||||
bgColor: blue
|
bgColor: blue
|
||||||
border: bright_black
|
border: bright_black
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# 256 COLORS
|
|
||||||
room:
|
room:
|
||||||
name_en: "256 COLORS"
|
|
||||||
name_ca: "256 COLORS"
|
|
||||||
bgColor: black
|
bgColor: black
|
||||||
border: bright_magenta
|
border: bright_magenta
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# ...?
|
|
||||||
room:
|
room:
|
||||||
name_en: "...?"
|
|
||||||
name_ca: "...?"
|
|
||||||
bgColor: black
|
bgColor: black
|
||||||
border: cyan
|
border: cyan
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# } WE ALL LOVE JAILGAMES }
|
|
||||||
room:
|
room:
|
||||||
name_en: "ä WE ALL LOVE JAILGAMES ä"
|
|
||||||
name_ca: "ä AMOR PELS JAILGAMES ä"
|
|
||||||
bgColor: black
|
bgColor: black
|
||||||
border: bright_black
|
border: bright_black
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# ULA HOP!
|
|
||||||
room:
|
room:
|
||||||
name_en: "ULA HOP!"
|
|
||||||
name_ca: "ULA HOP!"
|
|
||||||
bgColor: black
|
bgColor: black
|
||||||
border: cyan
|
border: cyan
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# SILICON BOOBS
|
|
||||||
room:
|
room:
|
||||||
name_en: "SILICON BOOBS"
|
|
||||||
name_ca: "MAMELLES DE SILICI"
|
|
||||||
bgColor: black
|
bgColor: black
|
||||||
border: bright_green
|
border: bright_green
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# BE CAREFUL WITH THE FUSE
|
|
||||||
room:
|
room:
|
||||||
name_en: "BE CAREFUL WITH THE FUSE"
|
|
||||||
name_ca: "COMPTE AMB EL FUSIBLE"
|
|
||||||
bgColor: black
|
bgColor: black
|
||||||
border: bright_cyan
|
border: bright_cyan
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# CHIP'N CHIP
|
|
||||||
room:
|
room:
|
||||||
name_en: "CHIP'N CHIP"
|
|
||||||
name_ca: "CHIP'N CHIP"
|
|
||||||
bgColor: black
|
bgColor: black
|
||||||
border: bright_green
|
border: bright_green
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# THE FINAL CROSSOVER
|
|
||||||
room:
|
room:
|
||||||
name_en: "THE FINAL CROSSOVER"
|
|
||||||
name_ca: "EL CROSSOVER DEFINITIU"
|
|
||||||
bgColor: bright_black
|
bgColor: bright_black
|
||||||
border: yellow
|
border: yellow
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# YOU'LL BELIEVE AROUNDER CAN FLY
|
|
||||||
room:
|
room:
|
||||||
name_en: "YOU'LL BELIEVE AROUNDER CAN FLY"
|
|
||||||
name_ca: "CREURAS QUE ELS AROUNDERS VOLEN"
|
|
||||||
bgColor: black
|
bgColor: black
|
||||||
border: cyan
|
border: cyan
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# PREVENT THE CRISIS
|
|
||||||
room:
|
room:
|
||||||
name_en: "PREVENT THE CRISIS"
|
|
||||||
name_ca: "EVITA LA CRISI"
|
|
||||||
bgColor: black
|
bgColor: black
|
||||||
border: bright_magenta
|
border: bright_magenta
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# AROUND WITH ME
|
|
||||||
room:
|
room:
|
||||||
name_en: "AROUND WITH ME"
|
|
||||||
name_ca: "AROUNDA AMB MI"
|
|
||||||
bgColor: black
|
bgColor: black
|
||||||
border: blue
|
border: blue
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# P.A.C.O. ON THE GO
|
|
||||||
room:
|
room:
|
||||||
name_en: "P.A.C.O. ON THE GO"
|
|
||||||
name_ca: "P.A.C.O. EN MARXA"
|
|
||||||
bgColor: black
|
bgColor: black
|
||||||
border: blue
|
border: blue
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# THE TUBE
|
|
||||||
room:
|
room:
|
||||||
name_en: "THE TUBE"
|
|
||||||
name_ca: "EL TUB"
|
|
||||||
bgColor: black
|
bgColor: black
|
||||||
border: blue
|
border: blue
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# SANDWITCH AND COUNTER
|
|
||||||
room:
|
room:
|
||||||
name_en: "SANDWITCH AND COUNTER"
|
|
||||||
name_ca: "SANDVITX I COUNTER STRIKE"
|
|
||||||
bgColor: black
|
bgColor: black
|
||||||
border: cyan
|
border: cyan
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# FEEL THE PRESSURE
|
|
||||||
room:
|
room:
|
||||||
name_en: "FEEL THE PRESSURE"
|
|
||||||
name_ca: "NOTA LA PRESSIO"
|
|
||||||
bgColor: bright_black
|
bgColor: bright_black
|
||||||
border: bright_yellow
|
border: bright_yellow
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# FEEL THE HEAT
|
|
||||||
room:
|
room:
|
||||||
name_en: "FEEL THE HEAT"
|
|
||||||
name_ca: "NOTA EL CALORET"
|
|
||||||
bgColor: bright_black
|
bgColor: bright_black
|
||||||
border: bright_yellow
|
border: bright_yellow
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# THE BATTLE NEVER ENDS
|
|
||||||
room:
|
room:
|
||||||
name_en: "THE BATTLE NEVER ENDS"
|
|
||||||
name_ca: "LA BATALLA MAI ACABA"
|
|
||||||
bgColor: black
|
bgColor: black
|
||||||
border: white
|
border: white
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# WELCOME TO THE JAILBATTLE
|
|
||||||
room:
|
room:
|
||||||
name_en: "WELCOME TO THE JAILBATTLE"
|
|
||||||
name_ca: "BENVINGUTS A JAILBATTLE"
|
|
||||||
bgColor: green
|
bgColor: green
|
||||||
border: bright_green
|
border: bright_green
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# WE NEED A ROBOT
|
|
||||||
room:
|
room:
|
||||||
name_en: "WE NEED A JAILROBOT"
|
|
||||||
name_ca: "NECESSITEM UN JAILROBOT"
|
|
||||||
bgColor: black
|
bgColor: black
|
||||||
border: red
|
border: red
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# STORED JAILGAMES
|
|
||||||
room:
|
room:
|
||||||
name_en: "STORED JAILGAMES"
|
|
||||||
name_ca: "EL MAGATZEM DE JAILGAMES"
|
|
||||||
bgColor: black
|
bgColor: black
|
||||||
border: blue
|
border: blue
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# MINI ASCII
|
|
||||||
room:
|
room:
|
||||||
name_en: "MINI ASCII"
|
|
||||||
name_ca: "MINI ASCII"
|
|
||||||
bgColor: black
|
bgColor: black
|
||||||
border: black
|
border: black
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# BREAKOUT.LUA
|
|
||||||
room:
|
room:
|
||||||
name_en: "BREAKOUT.LUA"
|
|
||||||
name_ca: "BREAKOUT.LUA"
|
|
||||||
bgColor: black
|
bgColor: black
|
||||||
border: black
|
border: black
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# P.A.C.O. WORKSHOP
|
|
||||||
room:
|
room:
|
||||||
name_en: "P.A.C.O. WORKSHOP"
|
|
||||||
name_ca: "EL TALLER DE P.A.C.O."
|
|
||||||
bgColor: black
|
bgColor: black
|
||||||
border: yellow
|
border: yellow
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# THE BASEMENT
|
|
||||||
room:
|
room:
|
||||||
name_en: "THE BASEMENT"
|
|
||||||
name_ca: "EL SOTAN"
|
|
||||||
bgColor: black
|
bgColor: black
|
||||||
border: blue
|
border: blue
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# THAT'S A GUITAR
|
|
||||||
room:
|
room:
|
||||||
name_en: "THAT'S A GUITAR"
|
|
||||||
name_ca: "AIXO ES UNA GUITARRA"
|
|
||||||
bgColor: black
|
bgColor: black
|
||||||
border: black
|
border: black
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# HEAVY DEMONS ON LEGGINS
|
|
||||||
room:
|
room:
|
||||||
name_en: "HEAVY DEMONS ON LEGGINS"
|
|
||||||
name_ca: "DIMONIS HEAVIES AMB MALLES"
|
|
||||||
bgColor: black
|
bgColor: black
|
||||||
border: black
|
border: black
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,9 +1,6 @@
|
|||||||
# JAILGAMES GO TO HELL
|
|
||||||
room:
|
room:
|
||||||
name_en: "JAILGAMES GO TO HELL"
|
|
||||||
name_ca: "JAILGAMES A L'INFERN"
|
|
||||||
bgColor: red
|
bgColor: red
|
||||||
border: bright_red
|
border: red
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|
||||||
# Conexiones de la habitación (null = sin conexión)
|
# Conexiones de la habitación (null = sin conexión)
|
||||||
@@ -44,7 +41,7 @@ tilemap:
|
|||||||
enemies:
|
enemies:
|
||||||
- animation: dimallas.yaml
|
- animation: dimallas.yaml
|
||||||
position: {x: 13, y: 12}
|
position: {x: 13, y: 12}
|
||||||
velocity: {x: 54.0, y: 0}
|
velocity: {x: 54, y: 0}
|
||||||
boundaries:
|
boundaries:
|
||||||
position1: {x: 4, y: 12}
|
position1: {x: 4, y: 12}
|
||||||
position2: {x: 21, y: 12}
|
position2: {x: 21, y: 12}
|
||||||
@@ -52,15 +49,14 @@ enemies:
|
|||||||
|
|
||||||
- animation: heavy.yaml
|
- animation: heavy.yaml
|
||||||
position: {x: 17, y: 5}
|
position: {x: 17, y: 5}
|
||||||
velocity: {x: 0, y: 36.0}
|
velocity: {x: 0, y: 36}
|
||||||
boundaries:
|
boundaries:
|
||||||
position1: {x: 17, y: 2}
|
position1: {x: 17, y: 2}
|
||||||
position2: {x: 17, y: 10}
|
position2: {x: 17, y: 10}
|
||||||
color: white
|
|
||||||
|
|
||||||
- animation: heavy.yaml
|
- animation: heavy.yaml
|
||||||
position: {x: 10, y: 8}
|
position: {x: 10, y: 8}
|
||||||
velocity: {x: 0, y: 36.0}
|
velocity: {x: 0, y: 36}
|
||||||
boundaries:
|
boundaries:
|
||||||
position1: {x: 10, y: 2}
|
position1: {x: 10, y: 2}
|
||||||
position2: {x: 10, y: 10}
|
position2: {x: 10, y: 10}
|
||||||
@@ -97,3 +93,4 @@ items:
|
|||||||
tile: 49
|
tile: 49
|
||||||
position: {x: 21, y: 11}
|
position: {x: 21, y: 11}
|
||||||
counter: 6
|
counter: 6
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# CHIRPING
|
|
||||||
room:
|
room:
|
||||||
name_en: "CHIRPING"
|
|
||||||
name_ca: "CHIRPING"
|
|
||||||
bgColor: black
|
bgColor: black
|
||||||
border: magenta
|
border: magenta
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# STATIC
|
|
||||||
room:
|
room:
|
||||||
name_en: "STATIC"
|
|
||||||
name_ca: "ESTATICA"
|
|
||||||
bgColor: black
|
bgColor: black
|
||||||
border: bright_magenta
|
border: bright_magenta
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
# MAGNETIC FIELDS
|
|
||||||
room:
|
room:
|
||||||
name_en: "MAGNETIC FIELDS"
|
|
||||||
name_ca: "CAMPS MAGNETICS"
|
|
||||||
bgColor: black
|
bgColor: black
|
||||||
border: bright_red
|
border: bright_red
|
||||||
tileSetFile: standard.gif
|
tileSetFile: standard.gif
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ Input::Input(std::string game_controller_db_path)
|
|||||||
{Action::LEFT, KeyState{.scancode = SDL_SCANCODE_LEFT}},
|
{Action::LEFT, KeyState{.scancode = SDL_SCANCODE_LEFT}},
|
||||||
{Action::RIGHT, KeyState{.scancode = SDL_SCANCODE_RIGHT}},
|
{Action::RIGHT, KeyState{.scancode = SDL_SCANCODE_RIGHT}},
|
||||||
{Action::JUMP, KeyState{.scancode = SDL_SCANCODE_UP}},
|
{Action::JUMP, KeyState{.scancode = SDL_SCANCODE_UP}},
|
||||||
|
{Action::DOWN, KeyState{.scancode = SDL_SCANCODE_DOWN}},
|
||||||
|
|
||||||
// Inputs de control
|
// Inputs de control
|
||||||
{Action::ACCEPT, KeyState{.scancode = SDL_SCANCODE_RETURN}},
|
{Action::ACCEPT, KeyState{.scancode = SDL_SCANCODE_RETURN}},
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ const std::unordered_map<InputAction, std::string> ACTION_TO_STRING = {
|
|||||||
{InputAction::LEFT, "LEFT"},
|
{InputAction::LEFT, "LEFT"},
|
||||||
{InputAction::RIGHT, "RIGHT"},
|
{InputAction::RIGHT, "RIGHT"},
|
||||||
{InputAction::JUMP, "JUMP"},
|
{InputAction::JUMP, "JUMP"},
|
||||||
|
{InputAction::DOWN, "DOWN"},
|
||||||
{InputAction::PAUSE, "PAUSE"},
|
{InputAction::PAUSE, "PAUSE"},
|
||||||
{InputAction::EXIT, "EXIT"},
|
{InputAction::EXIT, "EXIT"},
|
||||||
{InputAction::ACCEPT, "ACCEPT"},
|
{InputAction::ACCEPT, "ACCEPT"},
|
||||||
@@ -30,6 +31,7 @@ const std::unordered_map<std::string, InputAction> STRING_TO_ACTION = {
|
|||||||
{"LEFT", InputAction::LEFT},
|
{"LEFT", InputAction::LEFT},
|
||||||
{"RIGHT", InputAction::RIGHT},
|
{"RIGHT", InputAction::RIGHT},
|
||||||
{"JUMP", InputAction::JUMP},
|
{"JUMP", InputAction::JUMP},
|
||||||
|
{"DOWN", InputAction::DOWN},
|
||||||
{"PAUSE", InputAction::PAUSE},
|
{"PAUSE", InputAction::PAUSE},
|
||||||
{"EXIT", InputAction::EXIT},
|
{"EXIT", InputAction::EXIT},
|
||||||
{"ACCEPT", InputAction::ACCEPT},
|
{"ACCEPT", InputAction::ACCEPT},
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ enum class InputAction : int { // Acciones de entrada posibles en el juego
|
|||||||
LEFT,
|
LEFT,
|
||||||
RIGHT,
|
RIGHT,
|
||||||
JUMP,
|
JUMP,
|
||||||
|
DOWN,
|
||||||
|
|
||||||
// Inputs de control
|
// Inputs de control
|
||||||
PAUSE,
|
PAUSE,
|
||||||
|
|||||||
@@ -35,12 +35,8 @@ auto RenderInfo::get() -> RenderInfo* {
|
|||||||
return RenderInfo::render_info;
|
return RenderInfo::render_info;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Constructor: en DEBUG se activa inmediatamente (notifica a Notifier del offset)
|
// Constructor: arranca oculto; quien quiera activarlo debe llamar a toggle()
|
||||||
RenderInfo::RenderInfo() {
|
RenderInfo::RenderInfo() = default;
|
||||||
#ifdef _DEBUG
|
|
||||||
toggle();
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
// Actualiza la animación de entrada/salida del overlay
|
// Actualiza la animación de entrada/salida del overlay
|
||||||
void RenderInfo::update(float delta_time) {
|
void RenderInfo::update(float delta_time) {
|
||||||
|
|||||||
@@ -135,6 +135,7 @@ void Debug::loadFromFile() {
|
|||||||
spawn_settings_.flip = Defaults::Game::Player::SPAWN_FLIP;
|
spawn_settings_.flip = Defaults::Game::Player::SPAWN_FLIP;
|
||||||
initial_scene_ = SceneManager::Scene::GAME;
|
initial_scene_ = SceneManager::Scene::GAME;
|
||||||
lazy_loading_ = false;
|
lazy_loading_ = false;
|
||||||
|
render_info_enabled_ = false;
|
||||||
|
|
||||||
std::ifstream file(debug_file_path_);
|
std::ifstream file(debug_file_path_);
|
||||||
if (!file.good()) {
|
if (!file.good()) {
|
||||||
@@ -145,8 +146,13 @@ void Debug::loadFromFile() {
|
|||||||
std::string content((std::istreambuf_iterator<char>(file)), std::istreambuf_iterator<char>());
|
std::string content((std::istreambuf_iterator<char>(file)), std::istreambuf_iterator<char>());
|
||||||
file.close();
|
file.close();
|
||||||
|
|
||||||
|
bool needs_save = false;
|
||||||
try {
|
try {
|
||||||
auto yaml = fkyaml::node::deserialize(content);
|
auto yaml = fkyaml::node::deserialize(content);
|
||||||
|
// Detecta si falta alguna clave esperada para regenerar el fichero con los nuevos defaults
|
||||||
|
for (const char* key : {"room", "spawn_x", "spawn_y", "spawn_flip", "initial_scene", "lazy_loading", "render_info"}) {
|
||||||
|
if (!yaml.contains(key)) { needs_save = true; break; }
|
||||||
|
}
|
||||||
if (yaml.contains("room")) {
|
if (yaml.contains("room")) {
|
||||||
spawn_settings_.room = yaml["room"].get_value<std::string>();
|
spawn_settings_.room = yaml["room"].get_value<std::string>();
|
||||||
}
|
}
|
||||||
@@ -166,6 +172,9 @@ void Debug::loadFromFile() {
|
|||||||
if (yaml.contains("lazy_loading")) {
|
if (yaml.contains("lazy_loading")) {
|
||||||
lazy_loading_ = yaml["lazy_loading"].get_value<bool>();
|
lazy_loading_ = yaml["lazy_loading"].get_value<bool>();
|
||||||
}
|
}
|
||||||
|
if (yaml.contains("render_info")) {
|
||||||
|
render_info_enabled_ = yaml["render_info"].get_value<bool>();
|
||||||
|
}
|
||||||
} catch (...) {
|
} catch (...) {
|
||||||
// YAML inválido: resetear a defaults y sobreescribir
|
// YAML inválido: resetear a defaults y sobreescribir
|
||||||
spawn_settings_.room = Defaults::Game::Room::INITIAL;
|
spawn_settings_.room = Defaults::Game::Room::INITIAL;
|
||||||
@@ -174,8 +183,11 @@ void Debug::loadFromFile() {
|
|||||||
spawn_settings_.flip = Defaults::Game::Player::SPAWN_FLIP;
|
spawn_settings_.flip = Defaults::Game::Player::SPAWN_FLIP;
|
||||||
initial_scene_ = SceneManager::Scene::GAME;
|
initial_scene_ = SceneManager::Scene::GAME;
|
||||||
lazy_loading_ = false;
|
lazy_loading_ = false;
|
||||||
|
render_info_enabled_ = false;
|
||||||
saveToFile();
|
saveToFile();
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
if (needs_save) { saveToFile(); }
|
||||||
}
|
}
|
||||||
|
|
||||||
// Guarda la configuración de debug en debug.yaml
|
// Guarda la configuración de debug en debug.yaml
|
||||||
@@ -190,6 +202,7 @@ void Debug::saveToFile() const {
|
|||||||
file << "spawn_flip: " << ((spawn_settings_.flip == Flip::RIGHT) ? "right" : "left") << "\n";
|
file << "spawn_flip: " << ((spawn_settings_.flip == Flip::RIGHT) ? "right" : "left") << "\n";
|
||||||
file << "initial_scene: " << sceneToString(initial_scene_) << "\n";
|
file << "initial_scene: " << sceneToString(initial_scene_) << "\n";
|
||||||
file << "lazy_loading: " << (lazy_loading_ ? "true" : "false") << " # carga perezosa de recursos (dev)\n";
|
file << "lazy_loading: " << (lazy_loading_ ? "true" : "false") << " # carga perezosa de recursos (dev)\n";
|
||||||
|
file << "render_info: " << (render_info_enabled_ ? "true" : "false") << " # overlay de info activo al arrancar\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // _DEBUG
|
#endif // _DEBUG
|
||||||
@@ -48,6 +48,7 @@ class Debug {
|
|||||||
[[nodiscard]] auto getInitialScene() const -> SceneManager::Scene { return initial_scene_; } // Obtiene la escena inicial de debug
|
[[nodiscard]] auto getInitialScene() const -> SceneManager::Scene { return initial_scene_; } // Obtiene la escena inicial de debug
|
||||||
void setInitialScene(SceneManager::Scene s) { initial_scene_ = s; } // Establece la escena inicial de debug
|
void setInitialScene(SceneManager::Scene s) { initial_scene_ = s; } // Establece la escena inicial de debug
|
||||||
[[nodiscard]] auto getLazyLoading() const -> bool { return lazy_loading_; } // Indica si el modo lazy de recursos está activo
|
[[nodiscard]] auto getLazyLoading() const -> bool { return lazy_loading_; } // Indica si el modo lazy de recursos está activo
|
||||||
|
[[nodiscard]] auto getRenderInfoEnabled() const -> bool { return render_info_enabled_; } // Indica si el overlay RenderInfo arranca activo
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static Debug* debug; // [SINGLETON] Objeto privado
|
static Debug* debug; // [SINGLETON] Objeto privado
|
||||||
@@ -66,6 +67,7 @@ class Debug {
|
|||||||
SpawnSettings spawn_settings_; // Configuración de spawn para debug
|
SpawnSettings spawn_settings_; // Configuración de spawn para debug
|
||||||
SceneManager::Scene initial_scene_ = SceneManager::Scene::GAME; // Escena inicial en debug
|
SceneManager::Scene initial_scene_ = SceneManager::Scene::GAME; // Escena inicial en debug
|
||||||
bool lazy_loading_ = false; // Carga lazy de recursos (dev)
|
bool lazy_loading_ = false; // Carga lazy de recursos (dev)
|
||||||
|
bool render_info_enabled_ = false; // Overlay de RenderInfo activo al arrancar
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // _DEBUG
|
#endif // _DEBUG
|
||||||
@@ -177,6 +177,9 @@ Director::Director() {
|
|||||||
#endif
|
#endif
|
||||||
Notifier::init("", "8bithud");
|
Notifier::init("", "8bithud");
|
||||||
RenderInfo::init();
|
RenderInfo::init();
|
||||||
|
#ifdef _DEBUG
|
||||||
|
if (Debug::get()->getRenderInfoEnabled()) { RenderInfo::get()->toggle(); }
|
||||||
|
#endif
|
||||||
Console::init("8bithud");
|
Console::init("8bithud");
|
||||||
Screen::get()->setNotificationsEnabled(true);
|
Screen::get()->setNotificationsEnabled(true);
|
||||||
|
|
||||||
|
|||||||
@@ -14,9 +14,8 @@
|
|||||||
#include "utils/utils.hpp" // Para stringToColor, toLower
|
#include "utils/utils.hpp" // Para stringToColor, toLower
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
EditorStatusBar::EditorStatusBar(std::string room_number, std::string room_name)
|
EditorStatusBar::EditorStatusBar(std::string room_number)
|
||||||
: room_number_(std::move(room_number)),
|
: room_number_(std::move(room_number)) {
|
||||||
room_name_(std::move(room_name)) {
|
|
||||||
const float SURFACE_WIDTH = Options::game.width;
|
const float SURFACE_WIDTH = Options::game.width;
|
||||||
constexpr float SURFACE_HEIGHT = 6.0F * Tile::SIZE; // 48 pixels, igual que el scoreboard
|
constexpr float SURFACE_HEIGHT = 6.0F * Tile::SIZE; // 48 pixels, igual que el scoreboard
|
||||||
|
|
||||||
@@ -56,8 +55,8 @@ void EditorStatusBar::fillTexture() {
|
|||||||
const Uint8 VALUE_COLOR = stringToColor("white");
|
const Uint8 VALUE_COLOR = stringToColor("white");
|
||||||
const Uint8 DETAIL_COLOR = stringToColor("bright_yellow");
|
const Uint8 DETAIL_COLOR = stringToColor("bright_yellow");
|
||||||
|
|
||||||
// Línea 1: Nombre de la habitación
|
// Línea 1: Número de la habitación
|
||||||
text->writeColored(LEFT_X, LINE1_Y, toLower(room_number_ + " " + room_name_), LABEL_COLOR);
|
text->writeColored(LEFT_X, LINE1_Y, toLower(room_number_), LABEL_COLOR);
|
||||||
|
|
||||||
// Línea 2: Propiedades de room o info de enemigo
|
// Línea 2: Propiedades de room o info de enemigo
|
||||||
if (!line2_.empty()) {
|
if (!line2_.empty()) {
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ class Surface;
|
|||||||
|
|
||||||
class EditorStatusBar {
|
class EditorStatusBar {
|
||||||
public:
|
public:
|
||||||
EditorStatusBar(std::string room_number, std::string room_name);
|
explicit EditorStatusBar(std::string room_number);
|
||||||
~EditorStatusBar() = default;
|
~EditorStatusBar() = default;
|
||||||
|
|
||||||
void render();
|
void render();
|
||||||
@@ -40,7 +40,6 @@ class EditorStatusBar {
|
|||||||
|
|
||||||
// Variables
|
// Variables
|
||||||
std::string room_number_; // Número de la habitación
|
std::string room_number_; // Número de la habitación
|
||||||
std::string room_name_; // Nombre de la habitación
|
|
||||||
int mouse_tile_x_{0}; // Coordenada X del ratón en tiles
|
int mouse_tile_x_{0}; // Coordenada X del ratón en tiles
|
||||||
int mouse_tile_y_{0}; // Coordenada Y del ratón en tiles
|
int mouse_tile_y_{0}; // Coordenada Y del ratón en tiles
|
||||||
std::string line2_; // Contenido de la línea 2
|
std::string line2_; // Contenido de la línea 2
|
||||||
|
|||||||
@@ -219,7 +219,7 @@ void MapEditor::enter(std::shared_ptr<Room> room, std::shared_ptr<Player> player
|
|||||||
room_->resetEnemyPositions(room_data_.enemies);
|
room_->resetEnemyPositions(room_data_.enemies);
|
||||||
|
|
||||||
// Crear la barra de estado
|
// Crear la barra de estado
|
||||||
statusbar_ = std::make_unique<EditorStatusBar>(room_->getNumber(), room_->getName());
|
statusbar_ = std::make_unique<EditorStatusBar>(room_->getNumber());
|
||||||
|
|
||||||
// Resetear estado
|
// Resetear estado
|
||||||
drag_ = {};
|
drag_ = {};
|
||||||
@@ -1320,7 +1320,6 @@ auto MapEditor::createNewRoom(const std::string& direction) -> std::string { //
|
|||||||
// Crear Room::Data por defecto con conexión recíproca
|
// Crear Room::Data por defecto con conexión recíproca
|
||||||
Room::Data new_room;
|
Room::Data new_room;
|
||||||
new_room.number = std::string(name_buf).substr(0, std::string(name_buf).find('.'));
|
new_room.number = std::string(name_buf).substr(0, std::string(name_buf).find('.'));
|
||||||
new_room.name = "NO_NAME";
|
|
||||||
new_room.bg_color = "black";
|
new_room.bg_color = "black";
|
||||||
new_room.border_color = "magenta";
|
new_room.border_color = "magenta";
|
||||||
new_room.tile_set_file = "standard.gif";
|
new_room.tile_set_file = "standard.gif";
|
||||||
|
|||||||
@@ -37,25 +37,12 @@ auto RoomSaver::conveyorBeltToString(int direction) -> std::string {
|
|||||||
|
|
||||||
// Genera el YAML completo como texto con formato compacto
|
// Genera el YAML completo como texto con formato compacto
|
||||||
auto RoomSaver::buildYAML(const fkyaml::node& original_yaml, const Room::Data& room_data) -> std::string { // NOLINT(readability-function-cognitive-complexity)
|
auto RoomSaver::buildYAML(const fkyaml::node& original_yaml, const Room::Data& room_data) -> std::string { // NOLINT(readability-function-cognitive-complexity)
|
||||||
|
(void)original_yaml; // Ya no se usa; mantenido para compatibilidad con la firma de saveYAML
|
||||||
std::ostringstream out;
|
std::ostringstream out;
|
||||||
|
|
||||||
// --- Cabecera: nombre como comentario ---
|
|
||||||
out << "# " << room_data.name << "\n";
|
|
||||||
|
|
||||||
// --- Sección room ---
|
// --- Sección room ---
|
||||||
out << "room:\n";
|
out << "room:\n";
|
||||||
|
|
||||||
// Escribir todos los campos name_* del YAML original (preserva name_ca, name_en, etc.)
|
|
||||||
if (original_yaml.contains("room")) {
|
|
||||||
const auto& room_node = original_yaml["room"];
|
|
||||||
for (auto it = room_node.begin(); it != room_node.end(); ++it) {
|
|
||||||
const auto KEY = it.key().get_value<std::string>();
|
|
||||||
if (KEY.substr(0, 5) == "name_") {
|
|
||||||
out << " " << KEY << ": \"" << it.value().get_value<std::string>() << "\"\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
out << " bgColor: " << room_data.bg_color << "\n";
|
out << " bgColor: " << room_data.bg_color << "\n";
|
||||||
out << " border: " << room_data.border_color << "\n";
|
out << " border: " << room_data.border_color << "\n";
|
||||||
out << " tileSetFile: " << room_data.tile_set_file << "\n";
|
out << " tileSetFile: " << room_data.tile_set_file << "\n";
|
||||||
|
|||||||
@@ -65,6 +65,7 @@ void Player::handleInput() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
wanna_jump_ = Input::get()->checkAction(InputAction::JUMP);
|
wanna_jump_ = Input::get()->checkAction(InputAction::JUMP);
|
||||||
|
wanna_down_ = Input::get()->checkAction(InputAction::DOWN);
|
||||||
}
|
}
|
||||||
|
|
||||||
// La lógica de movimiento está distribuida en move
|
// La lógica de movimiento está distribuida en move
|
||||||
@@ -189,6 +190,13 @@ void Player::updateOnSlope(float delta_time) {
|
|||||||
startJump();
|
startJump();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
// DOWN: dejarse caer atravesando la rampa
|
||||||
|
if (wanna_down_) {
|
||||||
|
y_ += 1.0F;
|
||||||
|
vy_ = 0.0F;
|
||||||
|
transitionToState(State::ON_AIR);
|
||||||
|
return;
|
||||||
|
}
|
||||||
handleShouldFall();
|
handleShouldFall();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -103,6 +103,7 @@ class Player {
|
|||||||
|
|
||||||
Direction wanna_go_ = Direction::NONE;
|
Direction wanna_go_ = Direction::NONE;
|
||||||
bool wanna_jump_ = false;
|
bool wanna_jump_ = false;
|
||||||
|
bool wanna_down_ = false;
|
||||||
|
|
||||||
// --- Variables de estado ---
|
// --- Variables de estado ---
|
||||||
State state_ = State::ON_GROUND; // Estado en el que se encuentra el jugador. Util apara saber si está saltando o cayendo
|
State state_ = State::ON_GROUND; // Estado en el que se encuentra el jugador. Util apara saber si está saltando o cayendo
|
||||||
|
|||||||
@@ -8,8 +8,8 @@
|
|||||||
#include "utils/utils.hpp" // Para checkCollision
|
#include "utils/utils.hpp" // Para checkCollision
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
ItemManager::ItemManager(std::string room_name, std::shared_ptr<Scoreboard::Data> scoreboard_data)
|
ItemManager::ItemManager(std::string room_id, std::shared_ptr<Scoreboard::Data> scoreboard_data)
|
||||||
: room_name_(std::move(room_name)),
|
: room_id_(std::move(room_id)),
|
||||||
data_(std::move(scoreboard_data)) {
|
data_(std::move(scoreboard_data)) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -49,7 +49,7 @@ auto ItemManager::checkCollision(SDL_FRect& rect) -> bool { // NOLINT(readabili
|
|||||||
for (int i = 0; i < static_cast<int>(items_.size()); ++i) {
|
for (int i = 0; i < static_cast<int>(items_.size()); ++i) {
|
||||||
if (::checkCollision(rect, items_.at(i)->getCollider())) {
|
if (::checkCollision(rect, items_.at(i)->getCollider())) {
|
||||||
// Registra el item como recogido
|
// Registra el item como recogido
|
||||||
ItemTracker::get()->addItem(room_name_, items_.at(i)->getPos());
|
ItemTracker::get()->addItem(room_id_, items_.at(i)->getPos());
|
||||||
|
|
||||||
// Elimina el item de la colección
|
// Elimina el item de la colección
|
||||||
items_.erase(items_.begin() + i);
|
items_.erase(items_.begin() + i);
|
||||||
|
|||||||
@@ -23,10 +23,10 @@ class ItemManager {
|
|||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
* @brief Constructor
|
* @brief Constructor
|
||||||
* @param room_name Nombre de la habitación (para ItemTracker)
|
* @param room_id Identificador de la habitación (para ItemTracker)
|
||||||
* @param scoreboard_data Puntero compartido a los datos del scoreboard
|
* @param scoreboard_data Puntero compartido a los datos del scoreboard
|
||||||
*/
|
*/
|
||||||
ItemManager(std::string room_name, std::shared_ptr<Scoreboard::Data> scoreboard_data);
|
ItemManager(std::string room_id, std::shared_ptr<Scoreboard::Data> scoreboard_data);
|
||||||
~ItemManager() = default;
|
~ItemManager() = default;
|
||||||
|
|
||||||
// Prohibir copia y movimiento para evitar duplicación accidental
|
// Prohibir copia y movimiento para evitar duplicación accidental
|
||||||
@@ -68,6 +68,6 @@ class ItemManager {
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
std::vector<std::shared_ptr<Item>> items_; // Colección de items
|
std::vector<std::shared_ptr<Item>> items_; // Colección de items
|
||||||
std::string room_name_; // Nombre de la habitación
|
std::string room_id_; // Identificador de la habitación
|
||||||
std::shared_ptr<Scoreboard::Data> data_; // Datos del scoreboard
|
std::shared_ptr<Scoreboard::Data> data_; // Datos del scoreboard
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ Room::Room(const std::string& room_path, std::shared_ptr<Scoreboard::Data> data)
|
|||||||
|
|
||||||
// Crea los managers de enemigos e items
|
// Crea los managers de enemigos e items
|
||||||
enemy_manager_ = std::make_unique<EnemyManager>();
|
enemy_manager_ = std::make_unique<EnemyManager>();
|
||||||
item_manager_ = std::make_unique<ItemManager>(room->name, data_);
|
item_manager_ = std::make_unique<ItemManager>(room->number, data_);
|
||||||
|
|
||||||
initializeRoom(*room);
|
initializeRoom(*room);
|
||||||
openTheJail(); // Abre la Jail si se da el caso
|
openTheJail(); // Abre la Jail si se da el caso
|
||||||
@@ -44,7 +44,6 @@ Room::~Room() = default;
|
|||||||
void Room::initializeRoom(const Data& room) {
|
void Room::initializeRoom(const Data& room) {
|
||||||
// Asignar valores a las variables miembro
|
// Asignar valores a las variables miembro
|
||||||
number_ = room.number;
|
number_ = room.number;
|
||||||
name_ = room.name;
|
|
||||||
bg_color_ = room.bg_color;
|
bg_color_ = room.bg_color;
|
||||||
border_color_ = room.border_color;
|
border_color_ = room.border_color;
|
||||||
item_color1_ = room.item_color1.empty() ? "yellow" : room.item_color1;
|
item_color1_ = room.item_color1.empty() ? "yellow" : room.item_color1;
|
||||||
@@ -69,7 +68,7 @@ void Room::initializeRoom(const Data& room) {
|
|||||||
for (const auto& item : room.items) {
|
for (const auto& item : room.items) {
|
||||||
const SDL_FPoint ITEM_POS = {item.x, item.y};
|
const SDL_FPoint ITEM_POS = {item.x, item.y};
|
||||||
|
|
||||||
if (!ItemTracker::get()->hasBeenPicked(room.name, ITEM_POS)) {
|
if (!ItemTracker::get()->hasBeenPicked(room.number, ITEM_POS)) {
|
||||||
// Crear una copia local de los datos del item
|
// Crear una copia local de los datos del item
|
||||||
Item::Data item_copy = item;
|
Item::Data item_copy = item;
|
||||||
item_copy.color1 = stringToColor(item_color1_);
|
item_copy.color1 = stringToColor(item_color1_);
|
||||||
|
|||||||
@@ -40,7 +40,6 @@ class Room {
|
|||||||
|
|
||||||
struct Data {
|
struct Data {
|
||||||
std::string number; // Numero de la habitación
|
std::string number; // Numero de la habitación
|
||||||
std::string name; // Nombre de la habitación
|
|
||||||
std::string bg_color; // Color de fondo de la habitación
|
std::string bg_color; // Color de fondo de la habitación
|
||||||
std::string border_color; // Color del borde de la pantalla
|
std::string border_color; // Color del borde de la pantalla
|
||||||
std::string item_color1; // Color 1 para los items de la habitación
|
std::string item_color1; // Color 1 para los items de la habitación
|
||||||
@@ -62,7 +61,6 @@ class Room {
|
|||||||
|
|
||||||
// --- Funciones ---
|
// --- Funciones ---
|
||||||
[[nodiscard]] auto getNumber() const -> const std::string& { return number_; } // Devuelve el numero de la habitación
|
[[nodiscard]] auto getNumber() const -> const std::string& { return number_; } // Devuelve el numero de la habitación
|
||||||
[[nodiscard]] auto getName() const -> const std::string& { return name_; } // Devuelve el nombre de la habitación
|
|
||||||
[[nodiscard]] auto getBGColor() const -> Uint8 { return stringToColor(bg_color_); } // Devuelve el color de la habitación
|
[[nodiscard]] auto getBGColor() const -> Uint8 { return stringToColor(bg_color_); } // Devuelve el color de la habitación
|
||||||
[[nodiscard]] auto getBorderColor() const -> Uint8 { return stringToColor(border_color_); } // Devuelve el color del borde
|
[[nodiscard]] auto getBorderColor() const -> Uint8 { return stringToColor(border_color_); } // Devuelve el color del borde
|
||||||
void renderMap(); // Dibuja el mapa en pantalla
|
void renderMap(); // Dibuja el mapa en pantalla
|
||||||
@@ -122,7 +120,6 @@ class Room {
|
|||||||
|
|
||||||
// --- Variables ---
|
// --- Variables ---
|
||||||
std::string number_; // Numero de la habitación
|
std::string number_; // Numero de la habitación
|
||||||
std::string name_; // Nombre de la habitación
|
|
||||||
std::string bg_color_; // Color de fondo de la habitación
|
std::string bg_color_; // Color de fondo de la habitación
|
||||||
std::string border_color_; // Color del borde de la pantalla
|
std::string border_color_; // Color del borde de la pantalla
|
||||||
std::string item_color1_; // Color 1 para los items de la habitación
|
std::string item_color1_; // Color 1 para los items de la habitación
|
||||||
|
|||||||
@@ -5,7 +5,6 @@
|
|||||||
|
|
||||||
#include "core/resources/resource_helper.hpp" // Para Resource::Helper
|
#include "core/resources/resource_helper.hpp" // Para Resource::Helper
|
||||||
#include "external/fkyaml_node.hpp" // Para fkyaml::node
|
#include "external/fkyaml_node.hpp" // Para fkyaml::node
|
||||||
#include "game/options.hpp" // Para Options::language
|
|
||||||
#include "utils/defines.hpp" // Para Tile::SIZE
|
#include "utils/defines.hpp" // Para Tile::SIZE
|
||||||
#include "utils/utils.hpp" // Para stringToColor
|
#include "utils/utils.hpp" // Para stringToColor
|
||||||
|
|
||||||
@@ -71,12 +70,6 @@ void RoomLoader::parseRoomConfig(const fkyaml::node& yaml, Room::Data& room, con
|
|||||||
room.number = file_name.substr(0, file_name.find_last_of('.'));
|
room.number = file_name.substr(0, file_name.find_last_of('.'));
|
||||||
|
|
||||||
// Basic properties
|
// Basic properties
|
||||||
const std::string LANG_KEY = "name_" + Options::language;
|
|
||||||
if (room_node.contains(LANG_KEY)) {
|
|
||||||
room.name = room_node[LANG_KEY].get_value<std::string>();
|
|
||||||
} else if (room_node.contains("name")) {
|
|
||||||
room.name = room_node["name"].get_value<std::string>();
|
|
||||||
}
|
|
||||||
if (room_node.contains("bgColor")) {
|
if (room_node.contains("bgColor")) {
|
||||||
room.bg_color = readColorNode(room_node["bgColor"]);
|
room.bg_color = readColorNode(room_node["bgColor"]);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ Scoreboard::Scoreboard(std::shared_ptr<Data> data)
|
|||||||
|
|
||||||
// Pinta el objeto en pantalla
|
// Pinta el objeto en pantalla
|
||||||
void Scoreboard::render() {
|
void Scoreboard::render() {
|
||||||
|
return;
|
||||||
surface_->render(nullptr, &surface_dest_);
|
surface_->render(nullptr, &surface_dest_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -69,7 +69,6 @@ Game::Game(Mode mode)
|
|||||||
initPlayer(spawn_data_, room_);
|
initPlayer(spawn_data_, room_);
|
||||||
total_items_ = getTotalItems();
|
total_items_ = getTotalItems();
|
||||||
|
|
||||||
createRoomNameTexture();
|
|
||||||
game_backbuffer_surface_ = std::make_shared<Surface>(Options::game.width, Options::game.height);
|
game_backbuffer_surface_ = std::make_shared<Surface>(Options::game.width, Options::game.height);
|
||||||
changeRoom(current_room_);
|
changeRoom(current_room_);
|
||||||
|
|
||||||
@@ -340,7 +339,6 @@ void Game::updatePlaying(float delta_time) {
|
|||||||
checkPlayerAndEnemies();
|
checkPlayerAndEnemies();
|
||||||
checkIfPlayerIsAlive();
|
checkIfPlayerIsAlive();
|
||||||
checkEndGame();
|
checkEndGame();
|
||||||
checkRestoringJail(delta_time);
|
|
||||||
checkSomeCheevos();
|
checkSomeCheevos();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -466,7 +464,6 @@ void Game::renderPlaying() {
|
|||||||
// Si el editor está activo, delegar el renderizado de entidades y statusbar
|
// Si el editor está activo, delegar el renderizado de entidades y statusbar
|
||||||
if (MapEditor::get()->isActive()) {
|
if (MapEditor::get()->isActive()) {
|
||||||
MapEditor::get()->render();
|
MapEditor::get()->render();
|
||||||
renderRoomName();
|
|
||||||
Screen::get()->render();
|
Screen::get()->render();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -478,7 +475,6 @@ void Game::renderPlaying() {
|
|||||||
if (mode_ == Mode::GAME) {
|
if (mode_ == Mode::GAME) {
|
||||||
player_->render();
|
player_->render();
|
||||||
}
|
}
|
||||||
renderRoomName();
|
|
||||||
scoreboard_->render();
|
scoreboard_->render();
|
||||||
|
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
@@ -520,7 +516,6 @@ void Game::renderFadeToEnding() {
|
|||||||
room_->renderEnemies();
|
room_->renderEnemies();
|
||||||
room_->renderItems();
|
room_->renderItems();
|
||||||
player_->render(); // Player congelado pero visible
|
player_->render(); // Player congelado pero visible
|
||||||
renderRoomName();
|
|
||||||
scoreboard_->render();
|
scoreboard_->render();
|
||||||
|
|
||||||
// 4. Restaurar renderer original
|
// 4. Restaurar renderer original
|
||||||
@@ -715,12 +710,6 @@ void Game::handleDebugMouseDrag(float delta_time) {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Escribe el nombre de la pantalla
|
|
||||||
void Game::renderRoomName() {
|
|
||||||
// Dibuja la textura con el nombre de la habitación
|
|
||||||
room_name_surface_->render(nullptr, &room_name_rect_);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Cambia de habitación
|
// Cambia de habitación
|
||||||
auto Game::changeRoom(const std::string& room_path) -> bool {
|
auto Game::changeRoom(const std::string& room_path) -> bool {
|
||||||
// En las habitaciones los limites tienen la cadena del fichero o un 0 en caso de no limitar con nada
|
// En las habitaciones los limites tienen la cadena del fichero o un 0 en caso de no limitar con nada
|
||||||
@@ -733,9 +722,6 @@ auto Game::changeRoom(const std::string& room_path) -> bool {
|
|||||||
// Crea un objeto habitación nuevo a partir del fichero
|
// Crea un objeto habitación nuevo a partir del fichero
|
||||||
room_ = std::make_shared<Room>(room_path, scoreboard_data_);
|
room_ = std::make_shared<Room>(room_path, scoreboard_data_);
|
||||||
|
|
||||||
// Pone el nombre de la habitación en la textura
|
|
||||||
fillRoomNameTexture();
|
|
||||||
|
|
||||||
// Pone el color del marcador en función del color del borde de la habitación
|
// Pone el color del marcador en función del color del borde de la habitación
|
||||||
setScoreBoardColor();
|
setScoreBoardColor();
|
||||||
|
|
||||||
@@ -880,48 +866,6 @@ void Game::togglePause() {
|
|||||||
scoreboard_->setPaused(paused_);
|
scoreboard_->setPaused(paused_);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Da vidas al jugador cuando está en la Jail
|
|
||||||
void Game::checkRestoringJail(float delta_time) {
|
|
||||||
if (room_->getName() != "THE JAIL" || scoreboard_data_->lives == 9) {
|
|
||||||
jail_restore_time_ = 0.0F; // Reset timer cuando no está en la Jail
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!paused_) {
|
|
||||||
jail_restore_time_ += delta_time;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Incrementa el numero de vidas
|
|
||||||
if (jail_restore_time_ >= JAIL_RESTORE_INTERVAL) {
|
|
||||||
jail_restore_time_ -= JAIL_RESTORE_INTERVAL; // Mantiene el excedente para precisión
|
|
||||||
scoreboard_data_->lives++;
|
|
||||||
Audio::get()->playSound("death.wav", Audio::Group::GAME);
|
|
||||||
|
|
||||||
// Invalida el logro de completar el juego sin entrar a la jail
|
|
||||||
const bool HAVE_THE_ITEMS = scoreboard_data_->items >= int(total_items_ * 0.9F);
|
|
||||||
if (!HAVE_THE_ITEMS) {
|
|
||||||
Cheevos::get()->setUnobtainable(9);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Crea la textura con el nombre de la habitación
|
|
||||||
void Game::fillRoomNameTexture() { // NOLINT(readability-convert-member-functions-to-static)
|
|
||||||
// Pone la textura como destino de renderizado
|
|
||||||
auto previuos_renderer = Screen::get()->getRendererSurface();
|
|
||||||
Screen::get()->setRendererSurface(room_name_surface_);
|
|
||||||
|
|
||||||
// Rellena la textura de color
|
|
||||||
room_name_surface_->clear(stringToColor("white"));
|
|
||||||
|
|
||||||
// Escribe el texto en la textura
|
|
||||||
auto text = Resource::Cache::get()->getText("smb2");
|
|
||||||
text->writeDX(Text::CENTER_FLAG | Text::COLOR_FLAG, GameCanvas::CENTER_X, text->getCharacterSize() / 2, room_->getName(), 1, room_->getBGColor());
|
|
||||||
|
|
||||||
// Deja el renderizador por defecto
|
|
||||||
Screen::get()->setRendererSurface(previuos_renderer);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Comprueba algunos logros
|
// Comprueba algunos logros
|
||||||
void Game::checkSomeCheevos() { // NOLINT(readability-convert-member-functions-to-static)
|
void Game::checkSomeCheevos() { // NOLINT(readability-convert-member-functions-to-static)
|
||||||
auto* cheevos = Cheevos::get();
|
auto* cheevos = Cheevos::get();
|
||||||
@@ -989,15 +933,6 @@ void Game::initPlayer(const Player::SpawnData& spawn_point, std::shared_ptr<Room
|
|||||||
if (IGNORE_INPUT) { player_->setIgnoreInput(true); }
|
if (IGNORE_INPUT) { player_->setIgnoreInput(true); }
|
||||||
}
|
}
|
||||||
|
|
||||||
// Crea la textura para poner el nombre de la habitación
|
|
||||||
void Game::createRoomNameTexture() {
|
|
||||||
auto text = Resource::Cache::get()->getText("smb2");
|
|
||||||
room_name_surface_ = std::make_shared<Surface>(Options::game.width, text->getCharacterSize() * 2);
|
|
||||||
|
|
||||||
// Establece el destino de la textura
|
|
||||||
room_name_rect_ = {.x = 0.0F, .y = PlayArea::HEIGHT, .w = Options::game.width, .h = text->getCharacterSize() * 2.0F};
|
|
||||||
}
|
|
||||||
|
|
||||||
// Hace sonar la música
|
// Hace sonar la música
|
||||||
void Game::keepMusicPlaying() {
|
void Game::keepMusicPlaying() {
|
||||||
const std::string MUSIC_PATH = mode_ == Mode::GAME ? "574070_KUVO_Farewell_to_school.ogg" : "574071_EA_DTV.ogg";
|
const std::string MUSIC_PATH = mode_ == Mode::GAME ? "574070_KUVO_Farewell_to_school.ogg" : "574071_EA_DTV.ogg";
|
||||||
|
|||||||
@@ -42,7 +42,6 @@ class Game {
|
|||||||
static constexpr float BLACK_SCREEN_DURATION = 0.30F; // Duración de la pantalla negra en segundos (20 frames a 66.67fps)
|
static constexpr float BLACK_SCREEN_DURATION = 0.30F; // Duración de la pantalla negra en segundos (20 frames a 66.67fps)
|
||||||
static constexpr float GAME_OVER_THRESHOLD = 0.255F; // Tiempo antes del game over en segundos (17 frames a 66.67fps)
|
static constexpr float GAME_OVER_THRESHOLD = 0.255F; // Tiempo antes del game over en segundos (17 frames a 66.67fps)
|
||||||
static constexpr float DEMO_ROOM_DURATION = 6.0F; // Duración de cada habitación en modo demo en segundos (400 frames)
|
static constexpr float DEMO_ROOM_DURATION = 6.0F; // Duración de cada habitación en modo demo en segundos (400 frames)
|
||||||
static constexpr float JAIL_RESTORE_INTERVAL = 1.5F; // Intervalo de restauración de vidas en la Jail en segundos (100 frames)
|
|
||||||
static constexpr float FADE_STEP_INTERVAL = 0.05F; // Intervalo entre pasos de fade en segundos
|
static constexpr float FADE_STEP_INTERVAL = 0.05F; // Intervalo entre pasos de fade en segundos
|
||||||
static constexpr float POST_FADE_DELAY = 2.0F; // Duración de la pantalla negra después del fade
|
static constexpr float POST_FADE_DELAY = 2.0F; // Duración de la pantalla negra después del fade
|
||||||
|
|
||||||
@@ -57,7 +56,6 @@ class Game {
|
|||||||
void update(); // Actualiza el juego, las variables, comprueba la entrada, etc.
|
void update(); // Actualiza el juego, las variables, comprueba la entrada, etc.
|
||||||
void render(); // Pinta los objetos en pantalla
|
void render(); // Pinta los objetos en pantalla
|
||||||
void handleEvents(); // Comprueba los eventos de la cola
|
void handleEvents(); // Comprueba los eventos de la cola
|
||||||
void renderRoomName(); // Escribe el nombre de la pantalla
|
|
||||||
void transitionToState(State new_state); // Cambia al estado especificado y resetea los timers
|
void transitionToState(State new_state); // Cambia al estado especificado y resetea los timers
|
||||||
void updatePlaying(float delta_time); // Actualiza el juego en estado PLAYING
|
void updatePlaying(float delta_time); // Actualiza el juego en estado PLAYING
|
||||||
void updateBlackScreen(float delta_time); // Actualiza el juego en estado BLACK_SCREEN
|
void updateBlackScreen(float delta_time); // Actualiza el juego en estado BLACK_SCREEN
|
||||||
@@ -80,12 +78,9 @@ class Game {
|
|||||||
auto checkEndGame() -> bool; // Comprueba si ha finalizado el juego
|
auto checkEndGame() -> bool; // Comprueba si ha finalizado el juego
|
||||||
static auto getTotalItems() -> int; // Obtiene la cantidad total de items que hay en el mapeado del juego
|
static auto getTotalItems() -> int; // Obtiene la cantidad total de items que hay en el mapeado del juego
|
||||||
void togglePause(); // Pone el juego en pausa
|
void togglePause(); // Pone el juego en pausa
|
||||||
void checkRestoringJail(float delta_time); // Da vidas al jugador cuando está en la Jail
|
|
||||||
void fillRoomNameTexture(); // Pone el nombre de la habitación en la textura
|
|
||||||
void checkSomeCheevos(); // Comprueba algunos logros
|
void checkSomeCheevos(); // Comprueba algunos logros
|
||||||
void checkEndGameCheevos(); // Comprueba los logros de completar el juego
|
void checkEndGameCheevos(); // Comprueba los logros de completar el juego
|
||||||
void initPlayer(const Player::SpawnData& spawn_point, std::shared_ptr<Room> room); // Inicializa al jugador
|
void initPlayer(const Player::SpawnData& spawn_point, std::shared_ptr<Room> room); // Inicializa al jugador
|
||||||
void createRoomNameTexture(); // Crea la textura para poner el nombre de la habitación
|
|
||||||
void keepMusicPlaying(); // Hace sonar la música
|
void keepMusicPlaying(); // Hace sonar la música
|
||||||
void demoInit(); // DEMO MODE: Inicializa las variables para el modo demo
|
void demoInit(); // DEMO MODE: Inicializa las variables para el modo demo
|
||||||
void demoCheckRoomChange(float delta_time); // DEMO MODE: Comprueba si se ha de cambiar de habitación
|
void demoCheckRoomChange(float delta_time); // DEMO MODE: Comprueba si se ha de cambiar de habitación
|
||||||
@@ -102,7 +97,6 @@ class Game {
|
|||||||
std::shared_ptr<RoomTracker> room_tracker_; // Lleva el control de las habitaciones visitadas
|
std::shared_ptr<RoomTracker> room_tracker_; // Lleva el control de las habitaciones visitadas
|
||||||
std::shared_ptr<Room> room_; // Objeto encargado de gestionar cada habitación del juego
|
std::shared_ptr<Room> room_; // Objeto encargado de gestionar cada habitación del juego
|
||||||
std::shared_ptr<Player> player_; // Objeto con el jugador
|
std::shared_ptr<Player> player_; // Objeto con el jugador
|
||||||
std::shared_ptr<Surface> room_name_surface_; // Textura para escribir el nombre de la habitación
|
|
||||||
std::shared_ptr<Surface> game_backbuffer_surface_; // Backbuffer para efectos de fade
|
std::shared_ptr<Surface> game_backbuffer_surface_; // Backbuffer para efectos de fade
|
||||||
|
|
||||||
// Variables de estado del juego
|
// Variables de estado del juego
|
||||||
@@ -119,9 +113,6 @@ class Game {
|
|||||||
// Variables de demo mode
|
// Variables de demo mode
|
||||||
DemoData demo_; // Variables para el modo demo
|
DemoData demo_; // Variables para el modo demo
|
||||||
|
|
||||||
// Variables de efectos visuales
|
|
||||||
SDL_FRect room_name_rect_; // Rectangulo donde pintar la textura con el nombre de la habitación
|
|
||||||
float jail_restore_time_{0.0F}; // Tiempo acumulado para restauración de vidas en la Jail
|
|
||||||
|
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
// Variables de debug para arrastre con ratón
|
// Variables de debug para arrastre con ratón
|
||||||
|
|||||||
@@ -361,6 +361,12 @@ auto stringToColor(const std::string& str) -> Uint8 {
|
|||||||
{"white", 14},
|
{"white", 14},
|
||||||
{"bright_white", 15},
|
{"bright_white", 15},
|
||||||
|
|
||||||
|
// Índices extendidos (paletas de 32 colores): nombres genéricos COLOR_N
|
||||||
|
{"color_16", 16}, {"color_17", 17}, {"color_18", 18}, {"color_19", 19},
|
||||||
|
{"color_20", 20}, {"color_21", 21}, {"color_22", 22}, {"color_23", 23},
|
||||||
|
{"color_24", 24}, {"color_25", 25}, {"color_26", 26}, {"color_27", 27},
|
||||||
|
{"color_28", 28}, {"color_29", 29}, {"color_30", 30}, {"color_31", 31},
|
||||||
|
|
||||||
{"transparent", 255}};
|
{"transparent", 255}};
|
||||||
|
|
||||||
// Busca el color en el mapa
|
// Busca el color en el mapa
|
||||||
@@ -393,6 +399,7 @@ auto colorToString(Uint8 index) -> std::string {
|
|||||||
"yellow", "bright_yellow",
|
"yellow", "bright_yellow",
|
||||||
"white", "bright_white"};
|
"white", "bright_white"};
|
||||||
if (index < NAMES.size()) { return NAMES[index]; }
|
if (index < NAMES.size()) { return NAMES[index]; }
|
||||||
|
if (index < 32) { return "color_" + std::to_string(index); }
|
||||||
if (index == 255) { return "transparent"; }
|
if (index == 255) { return "transparent"; }
|
||||||
return std::to_string(index);
|
return std::to_string(index);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user